键键的2D数组,该键与另外2D数组中的自定义排序值相关 我搜索了我的相关主题,但没有找到类似的问题。 我的数组中有一个数组,并且有一个数组,我将其定义为订购数组。 $ array1 = [ “ 23456” => [&q ...

问题描述 投票:0回答:2
$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 arrays sorting multidimensional-array custom-sort
2个回答
2
投票

上面假设在

<?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

1
投票
$orderarray

中发现的所有ID,因为如果两个数组始终且仅包含相关数据,那么只能迭代$array并在该数据上执行关键搜索会更简单

$orderarray
.


最新问题
© www.soinside.com 2019 - 2025. All rights reserved.