$array1
的值重新排序
$orderarray
键。
因此,应该是id
而不是$array1
。我知道如何从$ array1`.
读取键
78933
那么我如何将两者合并在一起?
您可以使用
23456
foreach ($array1 as $key) {
echo $key;
}
foreach ($orderarray as $key) {
foreach ($key as $id => val) {
echo $val;
}
}
从订单array中创建映射数组,其中ID值成为键,并且从原始索引中绘制值。 然后按照查找/映射数组中的相关值对主数组进行排序。 demo
上面假设在
<?php
$array = array(
"23456" => array("id" => 1, "info" => "info"),
"78933" => array("id" => 1, "info" => "info")
);
$orderarray = array(
array("id" => 78933),
array("id" => 23456)
);
function customSort($a, $b) {
global $orderarray;
$_a = 0; $_b = 0;
foreach ($orderarray as $index => $order) {
$oid = intval($order['id']);
if ($oid == intval($a)) $_a = $index;
if ($oid == intval($b)) $_b = $index;
}
if ($_a == $_b) {
return 0;
}
return ($_a < $_b) ? -1 : 1;
}
uksort($array, "customSort");
print_r($array);
?>
中发现的所有值都在foreach ($orderarray as $map[$id] => ['id' => $id]);
uksort($array, fn($a, $b) => $map[$a] <=> $map[$b]);
var_export($array);
中找到。 它还假设
$array