我很尷尬地問這個問題,它很可能是重複的,但我的谷歌搜索結果很短(即時搜索錯誤,我猜),這樣一個基本問題是激怒我。如何在PHP中訪問數組中的第N個元素
我有一個包含我不知道的值的數組。
在java中,看看在第2項,我會使用類似
var = array[1]
我理解PHP數組的鍵值對,但我怎麼可以簡單地看一下第n值的數組來查看它的鍵值對,甚至更好,然後訪問鍵/值?
我很尷尬地問這個問題,它很可能是重複的,但我的谷歌搜索結果很短(即時搜索錯誤,我猜),這樣一個基本問題是激怒我。如何在PHP中訪問數組中的第N個元素
我有一個包含我不知道的值的數組。
在java中,看看在第2項,我會使用類似
var = array[1]
我理解PHP數組的鍵值對,但我怎麼可以簡單地看一下第n值的數組來查看它的鍵值對,甚至更好,然後訪問鍵/值?
如果你的鑰匙是數字,那麼它的工作原理完全一樣:
$arr = ['one', 'two', 'three']; // equivalent to [0 => 'one', 1 => 'two', 2 => 'three']
echo $arr[1]; // two
如果你的鍵不是數字或不連續的數字,它變得有點棘手:
$arr = ['one', 'foo' => 'bar', 42 => 'baz'];
如果您知道密鑰您想要:
echo $arr['foo']; // bar
但是,如果你只知道偏移,你可以試試這個:
$keys = array_keys($arr);
echo $arr[$keys[1]];
或數值重新索引數組:
$values = array_values($arr);
echo $values[1];
或切片它:
echo current(array_slice($arr, 1, 1));
最無論如何,你可能想要循環訪問數組,但這通常是你對未知內容數組的處理。如果內容是未知的,那麼無論如何你都對一個特定的偏移感興趣似乎很奇怪。
foreach ($arr as $key => $value) {
echo "$key: $value", PHP_EOL;
}
如果你想在不知道索引來訪問第n個元素,你可以使用next()ň倍,達到第n個元素。
for($i = 0; $i<$n; $i++){
$myVal = next();
}
echo $myVal;
還有其他方法可以訪問@deceze已經提到的特定元素。
如果您要訪問的每一個第n個元素:
$n = 3;
foreach (array_keys($arr) as $i => $key) {
if (($i+1) % $n) {
continue;
}
$value = $arr[$key];
}
默認情況下,PHP也使用int作爲鍵,從0 – Sugar
陣列開始*可能*是真實的陣列,或者可以* *是包含HashMap ;這是兩種類型,是的,這可能是非常混亂。沒有內置的方法來檢查這個(請參閱:http://stackoverflow.com/questions/173400/php-arrays-a-good-way-to-check-if-an-array-is-associative-or -sequential?RQ = 1)。請注意,某些函數/操作可以將「陣列」轉換爲「哈希映射」,反之亦然......「陣列」類型是語言恕我直言的主要設計缺陷之一... – Carpetsmoker
var_dump($ array) –