$zoo という次の配列があります
Array
(
[0] => &dog&
[1] => *1*
[2] => one
[3] => &cat&
[4] => *2*
[5] => two
[6] => &mouse&
[7] => *3*
[8] => three
[9] => &dog&
[10] => *4*
[11] => four
)
そして、私は次の結果が必要です:
Array
(
[&dog&] => Array
(
[0] => Array
(
[0] => *1*
[1] => one
)
[1] => Array
(
[0] => *4*
[1] => four
)
)
[&cat&] => Array
(
[0] => Array
(
[0] => *2*
[1] => two
)
)
[&mouse&] => Array
(
[0] => Array
(
[0] => *3*
[1] => three
)
)
)
これは私が思いついたものですが、問題は [&dog&] の場合、最初の値 (1, 1) ではなく、最後の値 (つまり 4, 4) のみを提供することです。
$animals=array();
for ($i = 0; $i < count($zoo); $i++)
{
if($zoo[$i][0] === "&")
{
$name=$zoo[$i];
if (isset($name))
$animals[$name] = array($liste);
else
$animals[$name] = array($liste);
$liste="";
}
if($zoo[$i][0] !== "&")
{
$number = $zoo[$i];
$liste[] = $number;
$animals[$name] = array($liste);
}
}
print_r($animals);
これにより、
Array
(
[&dog&] => Array
(
[0] => Array
(
[0] => *4*
[1] => four
)
)
[&cat&] => Array
(
[0] => Array
(
[0] => *2*
[1] => two
)
)
[&mouse&] => Array
(
[0] => Array
(
[0] => *3*
[1] => three
)
)
)
誰かが私を良い方向に向けることができますか?