プロが教える店舗&オフィスのセキュリティ対策術

質問させていただきます。
初歩的ですみません。。
以下のような連想配列を
array(3) {
["hidden_name"]=>
array(5) {
[0]=>
string(8) "test.jpg"
[1]=>
string(8) "test.jpg"
[2]=>
string(8) "test.jpg"
[3]=>
string(8) "test.jpg"
[4]=>
string(8) "test.jpg"
}
["number"]=>
array(5) {
[0]=>
string(1) "8"
[1]=>
string(1) "4"
[2]=>
string(2) "14"
[3]=>
string(2) "14"
[4]=>
string(2) "15"
}
["comment"]=>
array(5) {
[0]=>
string(5) "test1"
[1]=>
string(5) "test2"
[2]=>
string(5) "test3"
[3]=>
string(5) "test4"
[4]=>
string(5) "test5"
}
}

っを以下のような改行区切りのデータに整形したいと考えています。
test.jpg,8,test1
test.jpg,4,test2
test.jpg,14,test3
test.jpg,14,test4
test.jpg,15,test5

当然、自動で増えたり減ったりします。
実は以前からこのパターンではまることが多く、効率の良い整形の仕方や
マストなやり方があればご指南いただきたいです。
初歩的で申し訳ありませんが何卒よろしくお願いいたします。

A 回答 (1件)

今回のような単純な2次元配列であればarray_mapをつかって行列を入れ替えることができます。



<pre>
<?PHP
$a=array(
"hidden_name"=>array("test.jpg","test.jpg","test.jpg","test.jpg","test.jpg")
,"number"=>array("8","4","14","14","15")
,"comment"=>array("test1","test2","test3","test4","test5")
);
$b = array_map(null, $a["hidden_name"], $a["number"], $a["comment"]);
print_r($b);
foreach($b as $c){
print implode(",",$c)."\n";
}
?>
</pre>
    • good
    • 0
この回答へのお礼

さっそくの回答ありがとうございます!
for文を使って強引にやっていましたがこちらの方がはるかにスマートです!
助かりました、ベストアンサーとさせていただきます!

お礼日時:2014/07/04 13:08

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!