将一些值从二维数组转换为一维数组


Convert some values from two dimensional array to one dimensional array

array (size=2)
  0 => 
    array (size=4)
      'id_tax' => string '1' (length=1)
      'rate' => string '21.000' (length=6)
  1 => 
    array (size=4)
      'id_tax' => string '2' (length=1)
      'rate' => string '15.000' (length=6)

我想要的只是数组

1 => 21
2 => 15

这样做的最佳功能是什么?

$newArray = [];
foreach($array as $v){
    $newArray[] = $v['rate'];
}
print_r($newArray);

如果您需要在id_taxrate之间进行更正,那么只需这样做,正如sgt指出的那样:

$newArray[$v['id_tax']] = $v['rate'];

试试这个:

$newArray = array();

foreach($array as $value) {
    $newArray[$value['id_tax']] = $value['rate'];
}

从 PHP>= 5.5 开始,您可以使用 array_column 为您完成肮脏的工作

获取按"id_tax"列索引的列速率

$newArray = array_column($array, 'rate', 'id_tax');
print_r($newArray); 

指纹

Array
(
    [1] => 21.000
    [2] => 15.000
)

这应该适合您:

<?php
    $array1 = array(array("id_tax" => "1", "rate" => "21.000"), array("id_tax" => "2", "rate" => "15.000"));
    $array2 = array();
    foreach($array1 as $k => $v){
        $array2[$v['id_tax']] = $v['rate'];
    }
    var_dump($array2);

?>

输出:

array(2) {
  [1]=>
  string(6) "21.000"
  [2]=>
  string(6) "15.000"
}
$myArray = array();
foreach ($array as $k => $v){
    $myArray[$v['id_tax']] = $v['rate'];
}

所以你有结果:

1 => 21
2 => 15

下面的代码片段应该适合您 - 非常简单

$array 1 = array(array("id_tax" => "1", "rate" => "21.000"(, array("id_tax" => ">
2", "rate" => "15.000"((;print_r(array_combine(array_column($array 1 ,'id_tax' (, array_column($array 1,'rate'(((;

Php版本:5.4.0及更高

版本

输出 : 数组 ( [1] =>

 21.000 [2] => 15.000 ( 

谢谢

萨潘·库马尔