2014-11-04 161 views
2
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 

是什么tehe做最功能?

+0

使用'foreach'循环 – Saqueib 2014-11-04 11:02:59

回答

3

试试这个:

$newArray = array(); 


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

如果您需要id_taxrate之间corrispondeces,然后就做什么,作为中士指出:

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

新阵列的关键将是阵列的'id_tax' .. :) – 2014-11-04 11:06:29

+0

产生Array([0] => 21.000 [1] => 15.000) – mardon 2014-11-04 11:07:21

+0

+1 .. 。现在可以upvote ... :) – 2014-11-04 11:08:06

1

这应该为你工作:

<?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" 
} 
1
$myArray = array(); 
foreach ($array as $k => $v){ 
    $myArray[$v['id_tax']] = $v['rate']; 
} 

这样,你才有结果:

1 => 21 
2 => 15 
3

自PHP> = 5.5,你可以使用array_column做肮脏的工作,为您

取得列率,由“id_tax”列索引

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

print_r($newArray); 

打印

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

它适合PHP 5.5 – mardon 2014-11-04 11:40:15

1

这下面段应正常工作适合你 - 这很简单

$array1 = array(array("id_tax" => "1", "rate" => "21.000"), array("id_tax" => "2", "rate" => "15.000")); 

print_r(array_combine(array_column($array1 ,'id_tax'), array_column($array1,'rate')));

PHP版本:5.4.0和ownwards

输出:

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

谢谢,

Sapan Kumar