-1

動的に配列を生成したとしましょう。

    $arr[1]["a"] = "value";
    $arr[1]["b"] = "value";
    $arr[1]["c"] = "value";

    $arr[2]["a"] = "value";
    $arr[2]["b"] = "value";
    $arr[2]["c"] = "value";
    $arr[2]["d"] = "value";

    $arr[3]["a"] = "value";
    $arr[3]["g"] = "value";

配列の生成は操作できるため、この例をコアラインのように使用しないでください。ご覧のとおり、さまざまなキーがありますが、最後に次の情報を取得する必要があります。

$arr[1]['a'] = 'value';
$arr[1]['b'] = 'value';
$arr[1]['c'] = 'value';
$arr[1]['d'] = 'empty value';
$arr[1]['g'] = 'empty value';

$arr[2]['a'] = 'value';
$arr[2]['b'] = 'value';
$arr[2]['c'] = 'value';
$arr[2]['d'] = 'value';
$arr[2]['g'] = 'empty value';

$arr[3]['a'] = 'value';
$arr[3]['b'] = 'empty value';
$arr[3]['c'] = 'empty value';
$arr[3]['d'] = 'empty value';
$arr[3]['g'] = 'value';

空でない値は異なるため、array_mergeはあまり良い考えを使用していません。

4

2 に答える 2

1

私はあなたがこれを望んでいると思います(これはひどく非効率的ですが、私の脳は苦労しています)

$keys = array();
foreach($arr as $array){
   $keys = array_merge($keys, array_keys($array));
}
//$keys now has all unique keys
foreach($arr as $array){
   foreach($keys as $key){
      if(!isset($array[$key])){$array[$key] = null}
   }
}

これはテストされていませんが、うまくいくはずです

于 2013-02-25T09:12:08.013 に答える
0

I Guess is you want to fill your array with default values ... you can use array_fill to do that

$keys = array("a","b","c","d","g");
$arr[1] = array_combine($keys,array_fill(0, 5, 'empty value'));


$arr[1]["a"] = "value";
$arr[1]["b"] = "value";
$arr[1]["c"] = "value";


print_r($arr[1]);

Output

Array
(
    [a] => value
    [b] => value
    [c] => value
    [d] => empty value
    [g] => empty value
)
于 2013-02-25T09:05:58.707 に答える