usort()删除摄取数组的索引,导致“Undefined Index”错误

时间:2016-11-03 01:52:59

标签: php arrays

我正在构建一个多维数组

$cars = array(
"names" => array(), 
"prices" => array(), 
);

我使用来自外部源的数据

填充数组
foreach ($car["listings"] as $car) {
                    array_push($cars["prices"], $car["price"]);
                    array_push($cars["names"], $car["name"]);
                }

我想将数组cars中的所有汽车从价格从低到高排序。

function sortLowtoHigh($key){
    return function ($a, $b) use ($key) {
        return $b[$key] - $a[$key];
    };
}

和执行功能

usort($cars, sortLowtoHigh("prices"));

我将Undefined index: prices视为错误,即使数组显然存在(通过print_r()确认)

当我在函数内部添加print_r()时,我注意到我只看到值而不是我设计的数组结构。

function sortLowtoHigh($key){
    return function ($a, $b) use ($key) {
        echo "<pre>";
        print_r($a);
        echo "</pre>";
        return $b[$key] - $a[$key];
    };
}

简单地产生这个

Array
(
    [0] => Car1
    [1] => Car2
    [2] => Car3
)

有人可以建议我在保持钥匙完好的同时实现价格分类吗?

0 个答案:

没有答案