PHP如果in_array()如何获取密钥呢?

时间:2012-08-06 22:13:32

标签: php arrays

遇到一个小问题。

我有一个数组:

Array
(
    [0] => 
    [6] => 6
    [3] => 5
    [2] => 7
)

我正在检查数组中是否有设定值。

if(in_array(5, $array)) {
//do something
} else {
// do something else
}

问题是,当它在数组中找到值5时,我真的需要在我的"做某事"。

中使用密钥。

在这种情况下,我需要设置:

$key = 3;

(找到的值in_array中的键)。

有什么建议吗?

6 个答案:

答案 0 :(得分:100)

array_search()正是您要找的。

if (false !== $key = array_search(5, $array)) {
    //do something
} else {
    // do something else
}

答案 1 :(得分:16)

如果您只需要第一场比赛的密钥,请使用array_search()

$key = array_search(5, $array);
if ($key !== false) {
    // Found...
}

如果您需要与特定值匹配的所有条目的键,请使用array_keys()

$keys = array_keys($array, 5);
if (count($keys) > 0) {
    // At least one match...
}

答案 2 :(得分:3)

您可以使用此http://www.php.net/manual/en/function.array-search.php

$key = array_search(5, $array)
if ($key !== false) {
...

答案 3 :(得分:1)

也许你想使用array_search,如果找不到值则返回false,如果找到值则返回索引。查看说明here

答案 4 :(得分:1)

你可以尝试

if(in_array(5, $array))
{
    $key = array_search(5, $array);
    echo $key;
}

这种方式你知道它存在,如果它不存在它不会导致通知,警告或致命的脚本错误,这取决于你在那之后用那个键做什么。

答案 5 :(得分:0)

万一有人需要它,请把它们放在阵列中。我的情况是这样的:

我有一个像这样的数组:

$myArray =

array:3 [▼
  0 => array:3 [▼
    0 => 2
    1 => 0
    2 => "2019-07-21 23:59:59"
  ]
  1 => array:3 [▼
    0 => 3
    1 => 2
    2 => "2019-07-21 23:59:59"
  ]
  2 => array:3 [▼
    0 => 1
    1 => 1
    2 => "2019-07-21 23:59:59"
  ]
]

还有另一个这样的对象(一组对象):

$Array2 = 

Collection {#771 ▼
  #items: array:12 [▼
    0 => {#1047 ▼
      +"id": 2
      +"name": "demografico"
      +"dict_key": "demographic"
      +"component": "Demographic"
      +"country_id": null
      +"created_at": null
      +"updated_at": null
    }
    1 => {#1041 ▶}
    2 => {#1040 ▶}
    etc...

作为OP,我必须使用数组中某些值的键来“做某事”(使用html php模板中的值,我的情况是Laravel带刀片)。对于我的代码,我必须使用此代码:

foreach($Array2 as $key => $item)
    if(false !== $key = array_search($item->id, array_column($myArray, 0))
    // Note that $key is overwritten
        <input type="number" class="form-control" id="{!! $item->id !!}" value="{{ $myArray[$key][1] }}">