[英]Recursive array_search?
我有以下數組:
(
[https://i.imgur.com/vyGHgZN.jpg] => dummy2
[https://i.imgur.com/UYK4Agz.png] => dummy
[https://i.imgur.com/xEXdKYn.jpg] => dummy
)
[key]
是圖像鏈接,而=> dummy2
是我網站上的圖像位置。
使用以下功能,我刪除了所有鏈接和重復項。
$unique=array_unique(array_values($img_array));
它返回以下數組:
(
[0] => dummy2
[1] => dummy
)
現在,我想生成以下數組:
(
[dummy]
(
[0] => https://i.imgur.com/UYK4Agz.png
[1] => https://i.imgur.com/xEXdKYn.jpg
)
[dummy2]
(
[0] => https://i.imgur.com/vyGHgZN.jpg
)
)
因此,我使用以下函數來獲取每個類別的鏈接:
foreach($unique as $value){
print_r(array_search($value,$img_array));
}
返回以下內容:
https://i.imgur.com/vyGHgZN.jpghttps://i.imgur.com/vyGHgZN.jpg
但是正如您所看到的,它缺少一個鏈接...看來array_search
不是遞歸的!
嘗試了許多, 許多功能,包括,顯然,遞歸的,但他們都返回任何結果,在我的情況。
有任何想法嗎?
只需循環數組並使鍵值和值成為鍵:
$arr = array(
"https://i.imgur.com/vyGHgZN.jpg" => "dummy2",
"https://i.imgur.com/UYK4Agz.png" => "dummy",
"https://i.imgur.com/xEXdKYn.jpg" => "dummy"
);
foreach($arr as $key => $val){
$res[$val][] = $key;
}
var_dump($res);
輸出:
array(2) {
["dummy2"]=>
array(1) {
[0]=>
string(31) "https://i.imgur.com/vyGHgZN.jpg"
}
["dummy"]=>
array(2) {
[0]=>
string(31) "https://i.imgur.com/UYK4Agz.png"
[1]=>
string(31) "https://i.imgur.com/xEXdKYn.jpg"
}
}
簡單的foreach循環就可以了,
$result = [];
foreach ($arr as $key => $value) {
$result[$value][] = $key; // grouping array as per value as key
}
print_r($result);
輸出: -
Array
(
[dummy2] => Array
(
[0] => https://i.imgur.com/vyGHgZN.jpg
)
[dummy] => Array
(
[0] => https://i.imgur.com/UYK4Agz.png
[1] => https://i.imgur.com/xEXdKYn.jpg
)
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.