質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

279閲覧

PHP 配列の戻り値を結合したい

inu_nu

総合スコア1

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2022/06/01 01:43

実現したいこと

PHPの配列をforeachで回して、「ぴーえいちぴー」「じゃばすくりぷと」「じぇいくえりー」という戻り値をカンマ区切りで結合して出力したいです。

発生している問題

$bbb = $val[1];で取得した値を全部取得したいのですが、
$bbb の中身が「じぇいくえりー」で上書き?されてしまい2つしか取れていません。
ぴーえいちぴー,じゃばすくりぷと,じぇいくえりーと出力するにはどうすればいいでしょうか?

$ccc の中身 ぴーえいちぴー,じぇいくえりー

該当のソースコード

PHP

1$samples = array ( 2 array(['PHP','ぴーえいちぴー','AAA','000'], 3 array( ['JavaScript','じゃばすくりぷと','BBB'], 4 ['jQuery','じぇいくえりー','CCC'] 5 ) 6 ) 7 ); 8 9 foreach($samples as $key => $sample){ 10 foreach($samples as $sam){ 11 $aaa = $sam[0][1]; 12 foreach($sam[1] as $val){ 13 $bbb = $val[1]; 14 15    $ccc = $aaa.",".$bbb; 16              } 17 18                  echo $ccc; 19            } 20       } 21

$sampleの中身です

PHP

1array(2) { 2 [0]=> 3 array(4) { 4 [0]=> 5 string(3) "PHP" 6 [1]=> 7 string(21) "ぴーえいちぴー" 8 [2]=> 9 string(3) "AAA" 10 [3]=> 11 string(3) "000" 12 } 13 [1]=> 14 array(2) { 15 [0]=> 16 array(3) { 17 [0]=> 18 string(10) "JavaScript" 19 [1]=> 20 string(24) "じゃばすくりぷと" 21 [2]=> 22 string(3) "BBB" 23 } 24 [1]=> 25 array(3) { 26 [0]=> 27 string(6) "jQuery" 28 [1]=> 29 string(21) "じぇいくえりー" 30 [2]=> 31 string(3) "CCC" 32 } 33 } 34} 35

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ほんとにこのデータなんスか?

php

1[[$x1,[$x2,$x3]]] = $samples; 2echo $x1[1] . ',' . $x2[1] . ',' . $x3[1];

投稿2022/06/01 04:52

takasima20

総合スコア7458

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

本質的な解決には配列の構造を整理されたほうが良いかと思いますが
サンプルをそのまま解析する場合はこんな感じで

PHP

1$a =[ 2 [ 3 ['PHP','ぴーえいちぴー','AAA','000'], 4 [ 5 ['JavaScript','じゃばすくりぷと','BBB'], 6 ['jQuery','じぇいくえりー','CCC'] 7 ] 8 ] 9 ]; 10array_walk_recursive($a,function($x,$y) use(&$b){ 11 if($y==1) $b[]=$x; 12}); 13print implode(",",$b);

投稿2022/06/01 02:04

yambejp

総合スコア114843

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

inu_nu

2022/06/01 02:24

yambejpさん ありがとうございます!(>_<)実現したい形で出力できました! $keyが1のときのデータ(ぴーえいちぴー、じゃばすくりぷと、じぇいくえりー)を、$b[]という新しい配列に代入して、それをimplode関数でカンマ区切りにして出力したらよかったんですね! array_walk_recursive関数も初めて知ったので勉強になりました。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問