我忙于排序我的应用程序中的菜单结构。一旦菜单被用户重新排序,值(例如:菜单项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