我的表中存盤了一個字串。它是由管道分隔的多個值:
val 1|val2|val 44
我還有另一個字串,用分號分隔,我想將唯一值合并到第一個字串中。
abcd; efg; hijklmnop3; val2
所以我認為最簡單的方法是將它們轉換為陣列,合并并保持唯一,然后內爆回字串。
(my loop) {
$arr1 = array();
$arr2 = array();
$arr1[] = explode(';', $str1);
$arr2[] = explode('|', $str2);
$arr3 = implode("|",array_unique(array_merge($arr1,$arr2)));
}
但是當我嘗試
echo $arr3;
我明白了
警告:陣列到字串的轉換
我在這里想念什么?
uj5u.com熱心網友回復:
只需簡化為以下內容:
$str1 = 'abcd; efg; hijklmnop3; val2';
$str2 = 'val 1|val2|val 44 ';
// explode results an array
$arr1 = array_map('trim', explode(';', $str1));
$arr2 = array_map('trim', explode('|', $str2));
// Implode results a string
$string = implode("|", array_unique(array_merge($arr1, $arr2)));
echo $string;
結果是
abcd|efg|hijklmnop3|val2|val 1|val 44
注意,explode 已經回傳了一個陣列。通過以下內容,您可以將陣列添加到陣列中,但您只需要陣列。
$arr1[] = explode(';', $str1);是相同的array_push($arr1, explode(';', $str1));
您的問題的唯一性失敗了,因為您需要修剪空格。
'val2' !== ' val2' <-- see the space
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/524368.html
標籤:php
