gpt4 book ai didi

php - 更改二维数组每一行中的键而不丢失值

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

我有一个行数组,其中一个(视觉)数据列有两个相似但不同的键。我想替换其中一个键,以便该列在所有行中具有相同的键。

我的输入数组:

[
['Ttitle' => 'lilly', 'Price' => 1.75, 'Number' => 3],
['Title' => 'rose', 'Price' => 1.25, 'Number' => 15],
['Title' => 'daisy', 'Price' => 0.75, 'Number' => 25],
['Title' => 'nettle', 'Price' => 2.75, 'Number' => 33],
['Title' => 'orchid', 'Price' => 1.15, 'Number' => 7],
];

我想要的结果:(注意 lilly 的关键更改)

[
['Title' => 'lilly', 'Price' => 1.75, 'Number' => 3],
['Title' => 'rose', 'Price' => 1.25, 'Number' => 15],
['Title' => 'daisy', 'Price' => 0.75, 'Number' => 25],
['Title' => 'nettle', 'Price' => 2.75, 'Number' => 33],
['Title' => 'orchid', 'Price' => 1.15, 'Number' => 7],
];

当我尝试使用array_map()时,我设法将所有键更改为Title,但我也删除了所有Title值除了 Ttitle 键,我刚刚更改为 Title

代码如下:

if (!empty($notmatchingarray))
{
$completearray = array_merge($notmatchingarray, $datastuff2);

$completearray = array_map(
function($complete) {
return array(
'Title' => $complete['Ttitle'],
'Price' => $complete['Price'],
'Number' => $complete['Number'],
);
},
$completearray
);
print_r($completearray);
}

我在使用这个array_map()函数时做错了什么吗?我应该做点别的吗?

最佳答案

更好的方法,但我要走了。使用现有代码,您需要设置 TtitleTitle (以存在的为准):

$completearray = array_map(function($complete) {
$title = isset($complete['Ttitle']) ? $complete['Ttitle'] : $complete['Title'];
return array(
'Title' => $title,
'Price' => $complete['Price'],
'Number' => $complete['Number'],
);
}, $completearray);

Ternary operator是简单 if/else 的快捷方式,因此:

if(isset($complete['Ttitle'])) {
$title = $complete['Ttitle']; //if Ttitle is set use it
} else {
$title = $complete['Title']; //if not use Title
}

关于php - 更改二维数组每一行中的键而不丢失值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22364276/

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