-2

ようこそ、質問があります。おそらく簡単ですが、問題の解決策が見つかりません。次のような配列がいくつかあります。

  'contract' => 
  0 => '6'
  1 => '6'
  2 => '6'
 'folder_id' => 
  0 => '1'
  1 => '1'
  2 => '1'
 'service' => 
  0 => '2'
  1 => '2'
  2 => '2'
 'value' => 
  0 => '12'
  1 => '12'
  2 => '66'
 'currency_id' => 
  0 => '6' 
  1 => '9' 
  2 => '6' 

そして、私はそれらを操作したいので、次のようなものを得ることができます:

'0' =>
'contract' => '6'
'folder_id' => '1'
'service' => '2'
'value' => '12'
'currency_id' => '6'
'1' =>
'contract' => '6'
'folder_id' => '1'
'service' => '2'
'value' => '12'
'currency_id' => '9'
'2' =>
'contract' => '6'
'folder_id' => '1'
'service' => '2'
'value' => '66'
'currency_id' => '6'

何度も挑戦して失敗

4

4 に答える 4

1
$source=array(/*...*/);
$result=array();
array_walk($source,function($val,$key)use(&$result){
    foreach($val as $k=>$v){
        $result[$k][$key]=$v;
    }
});

オンラインデーモン

オンラインデモ2

PHP>=5.3 が必要

于 2013-06-25T08:16:12.780 に答える
0

のようなものを探しているのではないかと思います。この助けを願っています

if(isset($_POST['folder_id']) && isset($_POST['contract']) && isset($_POST['service']) && isset($_POST['value'])){   
    $folder_id= $_POST['folder_id'];
    $value= $_POST["value"];
    $service= $_POST['service'];
    $contract= $_POST['contract'];

if (!isset($_SESSION["array"]) || count($_SESSION["array"]) < 1) { 
$_SESSION["array"] = array(0 => array("contract" => $contract, "folder_id" => $folder_id, "service" => $service, "value" => $value, "currency_id" => $currency_id));
else{
//do something
}
}
}
?>
于 2013-06-25T07:41:33.697 に答える
0

これが役立つ場合は、このコードを実行してみてください。そういう価値観を持っていると思います。

$contract = array('6','6','6');
$folder_id = array('1','1','1');
$service = array('2','2','2');
$value = array('12','12','66');
$currency_id = array('6','9','6');

$l = count($contract);

$final_array = '';

for($x=0; $x<$l; $x++){

$final_array[$x][contract]=$contract[$x];
$final_array[$x][folder_id]=$folder_id[$x];
$final_array[$x][service]=$service[$x];
$final_array[$x][value]=$value[$x];
$final_array[$x][currency_id]=$currency_id[$x];

}

print_r($final_array);
于 2013-06-25T07:51:10.323 に答える
0

次のようなものを試してください:

<?php

$arr = array(
    'contract' => array(
        0 => '6',
        1 => '6',
        2 => '6'
    ),
    'folder_id' => array(
        0 => '1',
        1 => '1',
        2 => '1'
    )
);

$res = array();
foreach($arr as $name => $subarr) {
    foreach($subarr as $id => $value) {
        if (! isset($res[$id])) $res[$id] = array();
        $res[$id][$name] = $value;
    }
}

print_r($res);
于 2013-06-25T07:43:53.007 に答える