我有一个小阵列,我希望将其划分为多维数组。我有一些foreach循环,计数循环和递归没有运气。我显然需要了解更多。
我可以采用这样的数组:
array(
(int) 0 => 'red',
(int) 1 => 'white'
(int) 2 => 'blue'
)
并将其设为多维:
array(
'AND' => array(
'LIKE ' => 'red',
'AND' => array(
'LIKE ' => 'white',
'AND' => array(
'LIKE ' => 'blue'
)
)
)
)
感谢任何帮助。
答案 0 :(得分:1)
你可以通过递归来实现:
function multify($arr)
{
if(count($arr)<=1)
{
return array('LIKE'=>array_pop($arr));
}
return array('LIKE'=>array_pop($arr), 'AND'=>multify($arr));
}
$arr = array('red', 'white', 'blue');
print_r(array('AND'=>multify($arr)));
答案 1 :(得分:1)
这里有一些神奇的references没有递归。
$array = array('red', 'white', 'blue');
$new_array = array();
$temp_array = &$new_array;
foreach ($array as $item)
{
$temp_array = &$temp_array['and'];
// $temp_array value now equals to null,
// and it's refers to parent array item with key 'and'
$temp_array['like'] = $item;
}
unset($temp_array);
print_r($new_array);
答案 2 :(得分:0)
您可以使用
<pre><?php print_r($array); ?></pre>