我有以下名为 $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&] 他只给了我最后一个值(即 4, 4)而不是第一个值(1, 1)
$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
)
)
)
谁能指出我正确的方向?