簡體   English   中英

PHP從構建多維數組

[英]PHP build multidimensional array from

我有一個小陣列,希望將其分成多維陣列。 我已經摸索了一些foreach循環,計數循環和沒有運氣的遞歸。 我顯然需要了解更多。

我可以采取這樣的數組:

array(
(int) 0 => 'red',
(int) 1 => 'white'
(int) 2 => 'blue'
)

使其像這樣多維:

array(
'AND' => array(
    'LIKE ' => 'red',
    'AND' => array(
        'LIKE ' => 'white',
        'AND' => array(
            'LIKE ' => 'blue'
        )
    )
)
)

任何幫助表示贊賞。

您可以通過遞歸來做到這一點:

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)));

這里有些魔術,沒有遞歸的引用

$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);

演示

您可以使用

<pre><?php print_r($array); ?></pre>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM