2014-11-04 158 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