に存在しない場合、私はこのような配列の配列持つ空白の文字列を挿入しますなど配列をエコー、キーが別の配列
[0]
{
Array[0] { First_Name => "john" }
Array[1] { Last_Name => "smith" }
Array[2] { Job => "Worker Ant" }
}
[1]
{
Array[0] { First_Name => "jane" }
Array[1] { Last_Name => "smith" }
}
ことのがpeopleArray
それを呼ぶことにしましょう。
また、上記の例のキーと一致する"First_Name, Last_Name"
などのキーの配列もあります。私はそれをheadingArray
と呼ぶでしょう。
"'john', 'smith', 'Worker Ant'"
'jane','smith',''
をそしてheadingArray
のキーだけで空の文字列にすることなく、値が設定されています
は、私はこのようにカンマで区切ってpeopleArray
をエコーします。
私はこのような何かしようとしてきた:各ヘッダを通じて
for($i=0; $i < count($headingArray); $i++){
foreach($peopleArray as $row){
foreach($row as $data){
if(key($data) == $headingArray[$i]){
echo '"'.current($data).'",';
}
}
}
//die();
echo "\r\n";
}
Iループをし、値を一致させようが、それは明らかに動作しません。
これを行う簡単な方法が必要です。
誰でも私を助けたり、正しい方向に向けることができますか?私はこれに数時間頭を打っています。
編集:私はこれを思いついた。それは私が必要とするすべての値をエコーが、存在しないものをスキップして、いくつかの奇妙なことを行います。
foreach($peopleArray as $person) {
$prevKey = array();
$numItems = count($person);
$i = 0;
foreach($person as $heading) {
foreach($person as $key => $value) {
if(key($value) == $heading){
echo '"'.str_replace(',',' ',current($value)).'",';
$prevKey[] = key($value);
break;
} else if(in_array(key($value), $prevKey)) {
} else {
echo '"",';
}
}
//die(var_dump($prevKey));
$i++;
}
echo "\r\n";
}
が、私はそれが存在しない場合は空白の文字列を返すためにそれを必要とします。
私にはあなたは奇妙なデータ構造を持っているように見えます。なぜ配列の配列の配列の代わりに配列の配列を使用しないのですか? –
if(empty(key($ data))){エコー何か; } – bksi
元々はPOST varsのものでした。送信された各フォームで区切られたフォームからのすべてのデータの配列です。 – adamzwakk