我忙於排序我的應用程序中的菜單結構。一旦菜單被用戶重新排序,值(例如:菜單項1,菜單項2等)仍然在相同的地方。結合兩個數組PHP
現在我有兩個數組,一個保存它們的排序方式(數組1),另一個保存菜單項的值。 (陣列2)
兩個陣列的例子; (陣列1中,保持鍵)
Array
(
[0] => 1
[1] => 2
[2] => 0
)
上述陣列的值是新的數組的鍵。
(陣列2,保持該值)
Array
(
[0] => value_0
[1] => value_1
[2] => value_2
)
因此,我認爲這將是最好創建一個新的數組,其由選自;
- 的陣列1的值的數組2
的值。然而,我運行到的問題。我想讓數組2中的值堅持他們的鍵。所以我們可以說我改變了value_0的位置到最後一個,新的數組看起來像這樣;
Array
(
[1] => value_1
[2] => value_2
[0] => value_0
)
有沒有辦法做到這一點或我是否完全錯誤?
編輯
好了,所以期多維陣列它是。但是,我有問題創建一個。
Array 1和Array 2都來自數據庫。具有排序順序的數組1和數組2包含這些值。現在,數組2中的值就像這樣存儲;值1,值2,值3。所以爲了能夠與他們合作,我爆炸了(逗號)。
提取結果是不同的;
- 對於第一個數組,它會返回多少個值。 (所以如果有3個值,它將返回3個不同的位置。)
- 對於第二個數組,它將返回18條記錄,因爲這與其他菜單項(子菜單等)有關。
因此,對於第一個數組我做;
while ($row = mysql_fetch_assoc($result_query_test)) {
$positions[] = $row['position'];
}
對於我做的第二個數組;
while ($row = mysql_fetch_assoc($result_values)) {
$array_values = explode(',', $row['values']);
}
從那時起,我在創建multidimensinonal數組時遇到了問題;
while ($row = mysql_fetch_assoc($result_values)) {
$array_values = explode(',', $row['values']);
foreach ($positions as $new_key) {
foreach ($array_values as $value) {
$new_array[] = array('key' => $new_key, 'value' => $value);
}
}
}
編輯二:
這是我現在用的;
(因爲$ all_values是一個多維數組,因爲我有事先的值發生爆炸。)
foreach ($all_values as $values) {
foreach ($values as $key => $value) {
$new_array[] = array('key' => $positions[$key], 'value' => $value);
}
}
這就是$ new_array的回報;
Array
(
[0] => Array
(
[key] => 0
[value] => value_0
)
[1] => Array
(
[key] => 2
[value] => value_2
)
[2] => Array
(
[key] => 1
[value] => value_1
)
[3] => Array
(
[key] => 0
[value] => value_0
)
[4] => Array
(
[key] => 2
[value] => value_2
)
[5] => Array
(
[key] => 1
[value] => value_1
)
現在我需要得到的值和implode他們用逗號。但是,由於不是每3個值(value_0,value_1,value_3)在一起,我現在不能這樣做。
在這個例子中有3個按鍵,(0,1,2),這應該是它們的值不同的陣列,就像你在你的例子一樣:
Array (
[0] = Array (
[key] = 1,
[value] = value_1
),
[1] = Array (
[key] = 2,
[value] = value_2
),
[2] = Array (
[key] = 0,
[value] = value_0
)
)
如果我理解正確這你想要一個嵌套的列表? – 2012-07-26 14:41:18
考慮一個二維數組? http://webcheatsheet.com/php/multidimensional_arrays.php – Don 2012-07-26 14:42:42
或者沒有數組...:P通過使用[left]和[right] – 2012-07-26 14:43:31