如何根据一个数组对另一个数组排序



我有两个数组存储在一个数组中。它们有相同数量的值并且对齐:

$matrix['label1']
$matrix['label2']

我想对$matrix['label1']应用字母排序,并以相同的模式移动$matrix['label1']的内容。下面是一个输入和输出的例子。

$matrix['label1'] = ['b','c','a']
$matrix['label2'] = [ 1, 2, 3]
asort($matrix['label1'])
// outputs ['a','b','c']
//$matrix['label2'] should now be depending on that [ 3, 1, 2] 

我如何改变我的asort()调用使其工作?

你正在寻找array_multisort(),只需传递两个子数组作为参数给它:

<?php
    $matrix['label1'] = ['b','c','a'];
    $matrix['label2'] = [ 1, 2, 3];
    array_multisort($matrix['label1'], $matrix['label2']);
    print_r($matrix);
?>
输出:

Array
(
    [label1] => Array
        (
            [0] => a
            [1] => b
            [2] => c
        )
    [label2] => Array
        (
            [0] => 3
            [1] => 1
            [2] => 2
        )
)

相关内容

  • 没有找到相关文章

最新更新