0

私はこの配列と呼ばれて$addon_arrayいます。var_dumpを使用すると次のように表示されます。

array(10) { 
    ["ext_token"]=> string(5) "floor"  
    ["ext_token_child"]=> string(6) "carpet"  
    ["concrete"]=> string(1) "4"  
    ["cement"]=> string(1) "3"  
    ["sand"]=> string(1) "2"  
    ["wood_4_2"]=> string(1) "4"  
    ["wood_8_2"]=> string(1) "2"  
    [0]=> string(0) ""  
    ["brick"]=> string(3) "100"  
    ["carpet"]=> string(1) "3"
}

私が夜のほとんどをやろうとしているのは、配列のすべての異なる要素(ext_tokenとを除くext_token_child)を循環し、と呼ばれる別の変数を介して各数値を乗算する方法を考え出すことです$qty(これは何でもかまいません。 )。

columnNames次に、対応する(cementまたはなど...)と一緒に新しい配列に再度配置してもらいますsand。各要素でforeachループを実行するだけの単純なケースだと思いますが、配置できないようです。それらを新しいアレイに戻します。

ありとあらゆる助けをありがとう

4

4 に答える 4

2

これは(を使用してarray_walk)機能するはずです:

$new_array = array_walk($addon_array, function($v, $k) use ($qty) {
  if(in_array($k, array('ext_token', 'ext_token_child'))) return $v;
  return $v*$qty;
});
于 2012-08-26T09:52:24.300 に答える
2
$new_array = array();
foreach($addon_array as $key => $col) {
  if($key == 'ext_token' || $key == 'ext_token_child') {
    $new_array[$key] = $col;
  } else {
    $new_array[$key] = $col * $qty;
  }
}
于 2012-08-26T09:52:32.347 に答える
1
$qty = 10;
$newArray = array();
foreach($addon_array as $key => $val){
    if($key != 'ext_token' && $key != 'ext_token_child'){
        $newArray[$key]    = $qty*(int)$val;
    }
}

$newArray['ext_token'] = $addon_array['ext_token'];
$newArray['ext_token_child'] = $addon_array['ext_token_child'];

var_dump($newArray);
于 2012-08-26T09:55:45.850 に答える
0

PHPで配列を循環させるのは非常に簡単です。foreachを使用してください。

$new = array();
foreach($addon_array as $key=>$value){

     if($key != "ext_token" OR $key != "ext_token_child"){
          $value = $value*$qty;
     }
     $new[$key] = $value;
}
于 2012-08-26T09:56:15.330 に答える