更改在php中具有特定子键值的数组键中的值
更改数组键中具有特定值的多个值的最短方法是什么 例如,我有一个数组:更改在php中具有特定子键值的数组键中的值,php,arrays,Php,Arrays,更改数组键中具有特定值的多个值的最短方法是什么 例如,我有一个数组: array(2) { [0]=> array(5) { ["state"]=> string(6) "active" ["payer_mail"]=> string(12) "mail@none.com" ["start"]=> string(12) "06/05/2015" ["end"]=> string(8) "08/0
array(2) {
[0]=>
array(5) {
["state"]=>
string(6) "active"
["payer_mail"]=>
string(12) "mail@none.com"
["start"]=>
string(12) "06/05/2015"
["end"]=>
string(8) "08/07/2017"
["price"]=>
string(8) "45.00"
["keystring"]=>
string(8) "493457025"
}
[1]=>
array(6) {
["place"]=>
string(2) "47"
["state"]=>
string(8) "canceled"
["payer_mail"]=>
string(12) "mail@none.com"
["start"]=>
string(9) "20/8/2014"
["end"]=>
string(10) "20/10/2017"
["price"]=>
string(5) "95.00"
["keystring"]=>
string(8) "34879205"
}
}
我想为他的“keystring”
子键更改具有“34879205”
值的键的“state”
值。您可以使用foreach()
:-
输出:-您可以使用数组映射功能
$result = array_map(function ($element) {
if ($element['keystring'] === '34879205') {
$element['state'] = 'new_state';
}
return $element;
}, $array);
我发现的另一个方法是:
$key = array_search('34879205', array_column($array, 'keystring'));
$array[$key]['state'] = 'newvalue';
使用
foreach()。所以对于这类问题,这是一个负担。但答案是正确的,没有问题。谢谢!但我认为其他解决方案更优雅。谢谢。但我想我找到了一个更“php风格”的答案。你怎么认为?
$key = array_search('34879205', array_column($array, 'keystring'));
$array[$key]['state'] = 'newvalue';