gpt4 book ai didi

php多维数组,存在则查找更新,不存在则插入

转载 作者:行者123 更新时间:2023-12-02 13:56:42 24 4
gpt4 key购买 nike

我已经搜索过,没有发现任何相关内容。

我想要一些关于如何搜索多维数组并更新值(如果存在)或插入(如果不存在)的建议或指针。

例如。目前我使用这些值创建一个数组,如下所示:

Array
(
[0] => Array
(
[quantity] => 1
[supplier_paypal] => paypalaccount1@paypal.com
[supplier_price] => 10
)

[1] => Array
(
[quantity] => 2
[supplier_paypal] => paypalaccount2@paypal.com
[supplier_price] => 20
)

)

现在这很棒,但它只是循环并且可以在数组中创建重复的电子邮件地址。我需要一些可以放入循环中的东西,用于搜索电子邮件是否存在,如果存在,则只需将供应商价格加在一起即可。

有什么帮助或想法吗?

这是我尝试过的:

 $arrIt = new RecursiveIteratorIterator(
new RecursiveArrayIterator($this->data['payrecipient_data']));

foreach ($arrIt as $sub) {
$subArray = $arrIt->getSubIterator();
if ($subArray['supplier_paypal'] === $supplier_info['supplier_paypal']) {

$this->data['payrecipient_dup'][] = iterator_to_array($subArray);
} else {
$this->data['payrecipient_nondup'][] = iterator_to_array($subArray);
}
}

这使我能够搜索数组并将其分成重复组和不重复组。

但我不知道从哪里开始更新数组,所以我迷失了方向并陷入困境。

最佳答案

$needle = 'foo@bar.com';

$found = false;
foreach ($array as &$element) {
if ($element['supplier_paypal'] == $needle) {
// update some data
$element['foo'] = 'bar';
$found = true;
break;
}
}
unset($element);

if (!$found) {
$array[] = array('supplier_paypal' => $needle, ...);
}

有更优雅的方法来索引数据,以便更快地找到它,而不必每次都循环遍历整个数据,但这本质上是您正在寻找的基本算法。

关于php多维数组,存在则查找更新,不存在则插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8798522/

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