我有理解爲什麼我的含有3個元素陣列必須被切成每2個部分的問題。我希望訪問一個我只向數組中推入的數字,但它似乎打印出索引而不是我推入它的「鍵」值($ number)。價值似乎不正確
我有一個二維數組我推一個ID和一個整數進去,然後對它進行排序:
$array = [[]];
array_push($array, $doc[_id], $number);
array_multisort($array);
我然後過濾任何空元素:
$array = array_filter($array); //remove null elements
這所有作品然而,預計陣列看起來像這樣:
unrated.array(5)
{
[2]=> object(MongoId)#32 (1)
{ ["$id"]=> string(24) "57b99696ce2350100b000029" }
[3]=> object(MongoId)#31 (1)
{ ["$id"]=> string(24) "57b998ccce2350181700002b" }
[4]=> object(MongoId)#33 (1)
{ ["$id"]=> string(24) "57b99a84ce2350100b00002b" }
[5]=> int(2) [6]=> int(3)
}
再次,這是好的,但它意味着當我循環ove [R使用下面的代碼似乎長於3個要素,因爲我從0-6而不是0-3裁陣列:
$array = array_slice($array, 0, 6, true); //only get 3 elements from array
foreach ($array as $key => $value) {
echo $key; //prints out values from 1-5 weirdly.... should just print the $number value
$id = $value->{'$id'};
}
我想實現是找到元素與被推較早(array_push($陣列,$ DOC [_id],$數))的最低可能值陣列中但是因爲我不能明白爲什麼陣列被分成6而不是3份其更加混亂。
問題簡而言之:如何訪問推入陣列的$數字,以及爲什麼我的數組6看起來只有6個大小,當它只包含3個元素時。
任何幫助,將不勝感激,謝謝。
它是什麼,你希望'array_push($陣列,$ DOC [_id],$號)'做,到底是什麼?因爲實際做的是將___two___值推到數組的末尾。 '$ doc [_id]'的值和'$ number'的值。如果你這樣做了3次,就能解釋爲什麼你會看到陣列中的6個元素。 – Sherif
嗯,我只需要一種方法來訪問我的循環中的ID和$數字,所以我期望將$數字推到數組和ID並對它進行排序將導致數組按$數值排序。但最終我需要解決的主要問題是如何從循環訪問$ number值作爲排序等,如果存在問題,我可以通過更多的研究來解決。 – D3181
那麼,你的期望是錯誤的,因爲'$ number' ___和''id'都是數組中的值。這樣排序數組意味着對__both__值進行排序。你需要做的是將'$ number'直接分配給id鍵。 – Sherif