私はforeachループを使って複数の配列をループし、各配列のID値で決まる2つのグループに分けてエコーします。最終的にテーブルに。複数の配列とグループ値が各配列のID値で決まります
だから、例えば次のように私は与えられた2次元配列を持っています(私はわずか3例としてを使用しているが、現実にはもっとあるでしょう)
Array
(
[results] => Array
(
[numbpeople] => 3
[people] => Array
(
[0] => Array
(
[name] => bert
[mainId] => 2
[beens] => 0
[coins] => 8
[total] => 3
[ammount] => 2
[place] => 15
[type] => 0
)
[1] => Array
(
[name] => bungle
[mainId] => 1
[beens] => 0
[coins] => 4
[total] => 0
[ammount] => 10
[place] => 13
[type] => 0
)
[2] => Array
(
[name] => fred
[mainId] => 2
[beens] => 0
[coins] => 3
[total] => 1
[ammount] => 8
[place] => 11
[type] => 0
)
)
)
)
私は、次のコードを試してみたが、それは動作しません。その意図された方法。
//foreach ($data['results']['people'] as $pValue) {
foreach ($data['results']['people'] as $Key => $pValue) {
$numPeople = $data["results"]["numbpeople"]; //[$i];
if($numPeople>-1)
{
$MainId1="";
$MainId2="";
// set up header
echo "<strong>People:<br>name, beens, coins, total.</strong><br>";
echo "<br>";
// calculate who's got what?
$i=0;
while($i<$numPeople)
{
$pname[$i]=$pValue["name"][$i];
$pmainId[$i]=$pValue["mainId"][$i];
$pbeens[$i]=$pValue["beens"][$i];
$pcoins[$i]=$pValue["coins"][$i];
$ptotal[$i]=$pValue["total"][$i];
if(!stristr($pValue["mainId"],"1") && !stristr($pValue["mainId"],"2")) {
if($pmainId[$i]!=$MainId1 && $MainId1=="") {
$p1Name=$pname[$i]; // people1 name
$p1Beens=$pbeens[$i]; // people1 beens
$p1Coins=$pcoins[$i]; // people1 coins
$p1Total=$ptotal[$i]; // people1 total
}
if($pmainId[$i]!=$MainId1 && $MainId1!="" && $MainId2=="") {
$p2Name=$pname[$i]; // people2 name
$p2Beens=$pbeens[$i]; // people2 beens
$p2Coins=$pcoins[$i]; // people2 coins
$p2Total=$ptotal[$i]; // people2 total
}
// Id
if($pmainId[$i]!=$MainId1 && $MainId1=="") {
$MainId1=$pmainId[$i];
}
if($pmainId[$i]!=$MainId1 && $MainId1!="" && $MainId2=="") {
$MainId2=$pmainId[$i];
}
} else {
$MainId1="1";
$MainId2="2";
}
// output people ?
echo $i.". -> ".$p1Name[$i].", ".$p1Beens[$i].", ".$p1Coins[$i].", ".$p1Total[$i];
// 1 bungle 0 4 0
echo "<br>";
echo $i.". -> ".$p2Name[$i].", ".$p2Beens[$i].", ".$p2Coins[$i].", ".$p2Total[$i];
// 1 bert 0 8 3
// 2 fred 0 3 1
echo "<br>";
echo $MainId1, $MainId2;
// 1 2
echo "<br>";
$i++;
}
}else {
echo "No people";
}
}
さらに洗練されたソリューションが非常に役立ちます。
そして、何が機能していませんか? –
与えられたサンプル入力の出力として取得したいデータ構造を指定してください。注意:3つのエントリの配列が続く場合、サンプル入力の 'numbpeople'が2であることは奇妙です。その違いの意味は何ですか? – trincot
申し訳ありませんタイプミスが今すぐに修正されました – Renny