2012-09-25 72 views
0

我希望我的問題能夠充分描述我後面的內容...基於關聯數組的關鍵字使用PHP更改一個數組中的值使用PHP

這裏是情況。我有以下數組值。

categories['t-shirts'] = 10 
categories['shorts'] = 11 
... 

clothing[0] = 't-shirts' 
clothing[1] = 'shorts' 
... 

我想與從類別陣列與它匹配的數量來代替服裝數組中的值(T恤,短褲)。

乾杯

+0

它不應該是'服裝[10]'和'服裝[11]'? – hsz

+0

@ hsz我認爲他想要它像'衣服[0] = 10' –

+0

這是正確的布文。我希望能夠讀取服裝數組中的值,然後根據類別數組中的鍵重新分配值 –

回答

4
foreach($clothing as $key => $val){ 
    if(isset($categories[$val])){ 
     $clothing[$key] = $categories[$val]; 
    } 
} 

Codepad Example

+0

看起來是正確的,但輸出不匹配'categories ['t-shirt'] = 10 => clothing [0] ='t-shirts''在這個問題上,那是什麼讓我失望... +1可能是正確的,我應該學會更多地聽我的腸道:) – Fluffeh

+0

他說'替換值在服裝排列(T恤衫,短褲)中與其類別相匹配的編號,因此這會用「類別」中的值替換「t恤」,「短褲」 –

0

您可以使用簡單的PHP

categories[clothing[0]] = "some value" 
0

從你的問題,它看起來像

$newArray=array_keys($originalArray); 

應該做的T裏克。

0
$count = count($clothing); 
for($i=0; $i<$count; $i++) 
    $clothing[$i] = (array_key_exists($clothing[$i], $categories)) 
     ? $categories[$clothing[$i]] : 0; 

無任何計數設置$衣物0

0
$categories = array(); 
$categories['t-shirts'] = 10; 
$categories['shorts'] = 11; 

$clothing = array(); 
$clothing[0] = 't-shirts'; 
$clothing[1] = 'shorts'; 

array_walk($clothing, 
      function(&$value) use($categories) { 
       if (isset($categories[$value])) 
        $value = $categories[$value]; 
      } 
); 
var_dump($clothing); 
相關問題