gpt4 book ai didi

php - PHP比较和填充不同长度的数组

转载 作者:行者123 更新时间:2023-12-02 03:04:37 27 4
gpt4 key购买 nike

我有两个长度不同的数组,其中包含mysql表的字段:

data1: Array
(
[0] => Array
(
[field] => dggd
[type] => int(11)
[null] => NO
[key] =>
[default] =>
[extra] =>
)

[1] => Array
(
[field] => id2
[type] => varchar(255)
[null] => NO
[key] => PRI
[default] =>
[extra] =>
)

[2] => Array
(
[field] => qwee
[type] => int(11)
[null] => NO
[key] =>
[default] =>
[extra] =>
)

)
data2: Array
(
[0] => Array
(
[field] => id2
[type] => int(11)
[null] => NO
[key] => PRI
[default] =>
[extra] => auto_increment
)
)

基本上,我想用较小的值(空记录)填充数组,以匹配较大的数组的长度。我也希望索引匹配['field']值。

对于上面的示例,我希望转换后的 data2像这样:
data2: Array
(
[0] => ''
[1] => Array
(
[field] => id2
[type] => int(11)
[null] => NO
[key] => PRI
[default] =>
[extra] => auto_increment
)
[2] => ''
)

我的代码弄乱了所有内容,尽管如果您想看到它,可以在这里 https://codeshare.io/ald0pY

最佳答案

根据'field'中的$data1值创建一个具有空值的模板。

$template = array_fill_keys(array_column($data1, 'field'), '');

通过 $data2值重新索引 'field'并将其与模板合并。
$data2 = array_merge($template, array_column($data2, null, 'field'));

如果您不希望使用字符串键,请使用 array_values将其转换回数字键。
$data2 = array_values($data2);

此方法确实假定 'field'中存在 $data2中的 $data1的所有值。如果它具有任何不同的 'field'值,它们将被合并到模板的末尾,并且数组的长度将不同。

关于php - PHP比较和填充不同长度的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43639875/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com