正在努力解决一个小问题。
我有一个数组:
Array
(
[0] =>
[6] => 6
[3] => 5
[2] => 7
)
我正在检查数组中是否有设定值。
if(in_array(5, $array)) {
//do something
} else {
// do something else
}
问题是,当它在数组中找到值 5 时,我真的需要在我的"做某事"中使用键。
在这种情况下,我需要设置:
$key = 3;
(找到的值中的键in_array)。
有什么建议吗?
array_search()
就是你要找的。
if (false !== $key = array_search(5, $array)) {
// found!
} else {
// not found!
}
如果只需要第一个匹配项的键,请使用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...
}
你可以
用这个 http://www.php.net/manual/en/function.array-search.php
$key = array_search(5, $array)
if ($key !== false) {
...
你可以
试试
if(in_array(5, $array))
{
$key = array_search(5, $array);
echo $key;
}
这样你就知道它存在,如果它不存在,它不会导致通知、警告或致命的脚本错误,这取决于你之后对该密钥的处理。
也许你想改用array_search,如果未找到值,则返回 false,如果找到值,则返回索引。在此处查看说明
以防有人需要它在数组中。我的情况是这样的:
我有一个这样的数组:
$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] }}">