亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將關聯數組的數組減少為關聯數組

將關聯數組的數組減少為關聯數組

PHP
斯蒂芬大帝 2022-01-08 17:20:47
有沒有一種慣用的方式(一些現有的功能)來減少[[0 => 'zero'], [1 => 'one']]到[0 => 'zero', 1 => 'one']?很容易只創建一個循環來完成這項工作,但它似乎效率低下,我顯然更喜歡這里的單線。編輯:哦,這里 0 和 1 相互跟隨只是隨機的。數組也可以是[[2 => 'two'], [3 => 'three']]
查看完整描述

2 回答

?
米琪卡哇伊

TA貢獻1998條經驗 獲得超6個贊

假設您希望保留鍵,并假設在鍵沖突的情況下,您想要第一個值,array_reduce則非常適合該任務。

$r = array_reduce($a, function ($acc, $v) { return $acc + $v; }, []);

這在功能上與@Rakesh Jakhar 的解決方案相同。我認為它在語義上更忠實于問題,并且避免了初始化$ruse子句。

在 php 7.4 中,這可以用箭頭函數寫得更好一些:

$r = array_reduce($a, fn($acc, $v) => $acc + $v, []);

https://www.php.net/manual/en/function.array-reduce.php


查看完整回答
反對 回復 2022-01-08
?
阿波羅的戰車

TA貢獻1862條經驗 獲得超6個贊

您可以array_merge與...splat 運算符一起使用


$a = [[0 => 'zero'], [1 => 'one']];

print_r(array_merge(...$a));

解決方案二:保留密鑰


$a = [[1 => 'one'], [0 => 'zero']];

$r = [];

array_walk($a, function($v, $k) use (&$r){ $r += $v;});

print_r($r);

工作演示:https : //3v4l.org/9sRaE


查看完整回答
反對 回復 2022-01-08
  • 2 回答
  • 0 關注
  • 180 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號