說,一個數組,我們有一個數組:array(1,2,3,4,...)
我想將其轉換爲:如何創建一個嵌套的數組出PHP
array(
1=>array(
2=>array(
3=>array(
4=>array()
)
)
)
)
有人能幫忙嗎?
謝謝
編輯這將是很好的解決方案迭代。
說,一個數組,我們有一個數組:array(1,2,3,4,...)
我想將其轉換爲:如何創建一個嵌套的數組出PHP
array(
1=>array(
2=>array(
3=>array(
4=>array()
)
)
)
)
有人能幫忙嗎?
謝謝
編輯這將是很好的解決方案迭代。
$x = count($array) - 1;
$temp = array();
for($i = $x; $i >= 0; $i--)
{
$temp = array($array[$i] => $temp);
}
那麼,嘗試這樣的事情:
$in = array(1,2,3,4); // Array with incoming params
$res = array(); // Array where we will write result
$t = &$res; // Link to first level
foreach ($in as $k) { // Walk through source array
if (empty($t[$k])) { // Check if current level has required key
$t[$k] = array(); // If does not, create empty array there
$t = &$t[$k]; // And link to it now. So each time it is link to deepest level.
}
}
unset($t); // Drop link to last (most deep) level
var_dump($res);
die();
輸出:
array(1) {
[1]=> array(1) {
[2]=> array(1) {
[3]=> array(1) {
[4]=> array(0) {
}
}
}
}
}
非常感謝。你能提供一個關於你在這裏做了什麼的小解釋嗎? – MrFix
@MrFix新增評論。 –
我認爲你想創建看起來像下面的多維數組的語法。
$array = array(
'array1' => array('value' => 'another_value'),
'array2' => array('something', 'something else'),
'array3' => array('value', 'value')
);
這是你在找什麼?
這工作對我來說似乎比上面提到的更簡單。 –
你可以簡單地做一個遞歸函數:
<?php
function nestArray($myArray)
{
if (empty($myArray))
{
return array();
}
$firstValue = array_shift($myArray);
return array($firstValue => nestArray($myArray));
}
?>
聽起來有點unlogical。你需要什麼? –
** Q **。如何從數組中創建一些東西? **一個**。使用循環。 –
小心與我們分享您爲什麼要這樣做?很難想象任何情況下,你會需要它。 – George