簡體   English   中英

有沒有辦法獲取數組的所有鍵?

[英]There is a way to get all keys of the array?

我想讓數組的所有鍵都將每個鍵與數字進行比較,像這樣:

array(
[0] => 7
[1] => 8
[2] => 4
[3] => 6
)

if (6 != EACH KEY OF ARRAY) {
    so...
}

該條件不會顯示,因為當然有[3] => 6並且鍵6 = 6。

有功能嗎? 還有什么?

foreach($array as $key => $val)
{
  if (6 != $key) {
   // so...
  }
}

例:

$array = array(7, 8, 4, 6);

foreach($array as $key => $val)
{
  if (6 != $key) {
   echo '6 is not equal to ' . $key . '<br />';
  }
  else {
   echo '6 is equal to ' . $key . '<br />';
  }
}

結果:

6 is not equal to 7
6 is not equal to 8
6 is not equal to 4
6 is equal to 6

但是,如果要檢查數組中是否存在6的 ,請使用in_array如下所示:

if (in_array(6, $array)) {
  // 6 is present in the array
}

您最需要array_keys函數:

<?php
$array = array(7,8,4,6);

// Keys is an array of the keys from $array - [0,1,2,3]
$keys = array_keys($array);

print_r($keys);
?>

該print_r的輸出為:

Array
(
    [0] => 0
    [1] => 1
    [2] => 2
    [3] => 3
)

(請注意,原始鍵是新數組的 。)

然后,您要使用in_array檢查要查找的值是否在數組中:

<?php
echo in_array(6, $keys) // FALSE
?>

如果只想查看數組中是否存在鍵,則這是最快的方法:

$key = 6; // for example
if(isset($myArray[$key]))
{
    echo "the key $key is used in the array";
}
if(!in_array(6)) {
}

是的,我知道OP詢問鍵,但是從他的示例看來,他似乎需要值。

我不確定我是否理解您的要求,但其中一種可能適合您:

僅獲取密鑰:

print_r(array_keys($array));

交換鍵和值:

print_r(array_flip($array));

foreach ($array as $key => $value)
{
    var_dump($key, $value);
}

您不能使用多個相同的鍵,因此無需遍歷整個數組,只需編寫代碼來查找它。 您可以這樣做:

$arr = Array('1'=>'a','3'=>'b','6'=>'c');

if (array_key_exists('6',$arr))
{
    echo 'value of 6 = ' . $arr['6'];
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM