我在 foreach 回圈中有以下陣列,我想合并陣列值(用逗號附加),其中“鍵值”(column_name,match,coll)相同/重復。簡而言之,我想組合重復的陣列值。我怎樣才能做到這一點?這是我當前的陣列
Array
(
[id] => 86
[column_name] => Accommodation
[text] => hotel
[match] => 2
[coll] => 1
)
Array
(
[id] => 87
[column_name] => Accommodation
[text] => staff
[match] => 2
[coll] => 1
)
Array
(
[id] => 91
[column_name] => Accommodation
[text] => marriot
[match] => 3
[coll] => 1
)
我的預期結果:
Array
(
[id] => 86
[column_name] => Accommodation
[text] => hotel staff
[match] => 2
[coll] => 1
)
Array
(
[id] => 91
[column_name] => Accommodation
[text] => marriot
[match] => 3
[coll] => 1
)
嘗試使用以下代碼:
foreach ($result as $key =>$element) {
if($element['column_name'] == 'Accommodation'){
echo "<pre>";print_R($element);
}
}
uj5u.com熱心網友回復:
對于每個條目,生成鍵(我使用的是零字符連接值),并填充輸出陣列,text如果具有這樣鍵的條目已經存在,則附加:
<?php
$input = [
[
'id' => 86,
'column_name' => 'Accommodation',
'text' => 'hotel',
'match' => 2,
'coll' => 1,
],
[
'id' => 87,
'column_name' => 'Accommodation',
'text' => 'staff',
'match' => 2,
'coll' => 1,
],
[
'id' => 91,
'column_name' => 'Accommodation',
'text' => 'marriot',
'match' => 3,
'coll' => 1,
],
];
$output = [];
foreach( $input as $entry ){
$key = implode("\0",[$entry['column_name'],$entry['match'],$entry['coll']]);
// No such entry yet
if( empty( $output[$key] ) )
$output[ $key ] = $entry;
// This is a duplicate, appending text
else
$output[ $key ]['text'] .= ' ' . $entry['text'];
}
print_r( array_values($output) );
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/524364.html
標籤:php数组多维数组
上一篇:Python請求文字與計算
