阵列翻转和合并多个阵列


Array flip and merge multiple arrays

如何制作以下数组:

Array
(
    [0] => Array
        (
            [r_id] => 1
            [r_rate] => 180.00
        )
    [1] => Array
        (
            [r_id] => 2
            [r_rate] => 100.00
        )
    [2] => Array
        (
            [r_id] => 3
            [r_rate] => 100.00
        )
    [3] => Array
        (
            [r_id] => 4
            [r_rate] => 100.00
        )
)

如下所示:(数组值r_id=数组键,值为r_rate)

Array
(
    [1] => 180.00 // [r_id] => [r_rate]
    [2] => 100.00
    [3] => 100.00
    [4] => 100.00
)

我尝试过使用array_fliparray_merge并在数组中循环,但收效甚微。数组名称为$r_id

您可以使用一个简单的foreach来实现此目的:

foreach($original_array as $values) {
    $new_array[$values['r_id']] = $values['r_rate'];
         //   ^ so the r_id assign it as key  ^ and the rate becomes the values
}

所以最后你只需要得到一个平面阵列。

这是一个简单的循环:

$result = array();
foreach ($r_id as $element) {
    $result[$element['r_id']] = $element['r_rate'];
}

您可以在PHP>=5.5.0中使用名为array_column()的本机函数来实现此结果

$result = array_column($array, 'r_rate', 'r_id');

示例:https://3v4l.org/u5157