根据php中的其他数组值重新排列数组值
我有两个数组(一个是单数组,一个是多维数组) 单个数组“A”看起来像根据php中的其他数组值重新排列数组值,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我有两个数组(一个是单数组,一个是多维数组) 单个数组“A”看起来像 [questionid] => Array ( [0] => 12 [1] => 13 [2] => 55 [3] => 15 [4] => 16 ) Array ( [0] => Array (
[questionid] => Array
(
[0] => 12
[1] => 13
[2] => 55
[3] => 15
[4] => 16
)
Array
(
[0] => Array
(
[quid] => 12
[answer] => AAA
)
[1] => Array
(
[quid] => 13
[answer] => neighbour
)
[2] => Array
(
[quid] => 15
[answer] =>
)
[3] => Array
(
[quid] => 16
[answer] =>
)
[4] => Array
(
[quid] => 55
[answer] =>
)
)
多维数组“B”看起来像
[questionid] => Array
(
[0] => 12
[1] => 13
[2] => 55
[3] => 15
[4] => 16
)
Array
(
[0] => Array
(
[quid] => 12
[answer] => AAA
)
[1] => Array
(
[quid] => 13
[answer] => neighbour
)
[2] => Array
(
[quid] => 15
[answer] =>
)
[3] => Array
(
[quid] => 16
[answer] =>
)
[4] => Array
(
[quid] => 55
[answer] =>
)
)
现在我希望数组B(quid)的值根据数组A中的值重新排列。因此,在数组B中quid最后一个元素(55)的值位于最末端,而在数组A中,quid最后一个元素(55)的值位于第三位
我希望数组B像这样
Array
(
[0] => Array
(
[quid] => 12
[answer] => AAA
)
[1] => Array
(
[quid] => 13
[answer] => neighbour
)
[2] => Array
(
[quid] => 55
[answer] =>
)
[3] => Array
(
[quid] => 15
[answer] =>
)
[4] => Array
(
[quid] => 16
[answer] =>
)
)
多维数组的代码是
$ansid = array
(
array
(
"quid" => 12,
"answer" => "AAA"
),
array
(
"quid" => 13,
"answer" => "neighbour"
),
array
(
"quid" => 15,
"answer" =>""
),
array
(
"quid" => 16,
"answer" =>""
),
array
(
"quid" => 55,
"answer" =>""
)
);
不使用
array\u walk()
为了更具说明性,您可以
$newB=array()
foreach ($arrayB as $b) $newB[$b['quid']]=$b;
$newA=array()
foreach ($arrayA as $k=>$v) $newA[$k]=$newB[$v]
//$newA has the required structure
使用用户排序功能:
$single_array = ...; // order by the index of this array
$mult_dim_array = ...; // to be ordered by the 'quid' value of the elements
function my_comp($a, $b) {
return array_search($a['quid'], $single_array ) - array_search($b['quid'], $single_array );
}
usort($mult_dim_array, "my_comp");
这将获得第一个数组上的索引,以确定哪个元素先到还是后到。函数将$single_array
读取为全局变量(在函数外部定义)
谢谢,但我不知道为什么我会收到多维数组的“警告:非法偏移类型”。我在问题中发布了结构。我太愚蠢了。请忽略我最后的评论。你的解决方案太棒了。现在我需要理解了。非常感谢你的帮助。