2 回答

TA貢獻1856條經(jīng)驗 獲得超11個贊
最好修改數(shù)組的創(chuàng)建而不是事后更改它。
// Start with manual relation otherwise default to next/prev? ??
foreach ($item['related'] as $id) {
??
? ? $related[] = perch_collection('Projects', [
? ? ? ? 'filter' => [
? ? ? ? ? ? [
? ? ? ? ? ? ? ? 'filter' => '_id',
? ? ? ? ? ? ? ? 'match'? => 'eq',
? ? ? ? ? ? ? ? 'value'? => $id,
? ? ? ? ? ? ],
? ? ? ? ? ? // Item is enabled
? ? ? ? ? ? [
? ? ? ? ? ? ? ? 'filter' => 'status',
? ? ? ? ? ? ? ? 'match' => 'eq',
? ? ? ? ? ? ? ? 'value' => 'enabled',
? ? ? ? ? ? ],
? ? ? ? ],
? ? ? ? 'skip-template' => true,
? ], true)[0];
}
請注意函數(shù)調(diào)用[0]末尾的perch_collection()。這基本上與我答案的第二部分相同,只是發(fā)生得更早。
話雖如此,如果在創(chuàng)建原始數(shù)組后仍想更改它,則可以使用一個簡單的 foreach 循環(huán)并引用原始數(shù)組。
foreach($array as &$arr) {
? ? $arr = $arr[0];
}
&
前面使用的$arr
是reference
.?這意味著循環(huán)將更改原始數(shù)組,因此可以防止臨時數(shù)組的開銷。
micmackusa讓我知道另一個使用 的解決方案array_column()
,它完全避免了循環(huán)。
$array?=?array_column($array,?0);

TA貢獻1780條經(jīng)驗 獲得超4個贊
解決這個問題的最好辦法就是從源頭入手。這看起來像是從數(shù)據(jù)庫接收的數(shù)據(jù)集,因此您也可以嘗試以正確的格式生成它,而不是在收到它后嘗試操作該數(shù)組。大多數(shù) DAL 都有方法來操作結(jié)果集的返回類型。
但是,如果這是不可能的,并且您始終只有一個嵌套元素,則此循環(huán)應(yīng)該可以解決問題。
for($i = 0; $i <= count($array); $i++) {
$shifted[$i] = $array[$i][0];
}
- 2 回答
- 0 關(guān)注
- 163 瀏覽
添加回答
舉報