PHP同步数组键

PHP同步数组键,php,arrays,csv,Php,Arrays,Csv,假设我们已经动态生成了数组 $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

假设我们已经动态生成了数组

    $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\u fill
来完成此操作

$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]);
输出

Array
(
    [a] => value
    [b] => value
    [c] => value
    [d] => empty value
    [g] => empty value
)
我想你想要这个(这个效率非常低,但我的大脑正在挣扎)


这是未经测试的,但我认为应该有效

你的问题到底是什么?好吧,我的错,问题是如何同步数组键,正如您在示例中所看到的,
sync
的确切含义并不清楚……在数组开始时,您不知道有多少个键。这是二维数组。第一个维度并不重要,但在第二个维度上,您有不同的数组键。数组将用于生成csv文件,所以在生成它之前,数组必须与表类似。第二维度中的所有数组键必须与其他数组键同步您不知道数组开头的键(“a”、“b”、“c”、“d”、“g”);-不,没有关于键名和键名数量的信息,这就是给出此类示例的原因。我将准备一个例子;)那么你是如何在结尾处得到“
$arr[1]['d']]
和“
$arr[1]['g']]
的呢?”我的问题有两个例子,第一个显示了我们拥有什么,第二个显示了我们想要什么,因为我在问题中键入的文本很少“,但最后我们必须得到:“那么我是如何得到$arr[1]['d']和$arr[1]['g']的,猜猜怎么得到的。请下次在投票前阅读,或者感谢您的时间。事实上,这似乎是唯一的办法。如果有什么巧妙的方法,我只是个古玩。谢谢你的时间
$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}
   }
}