遇到一个小问题。
我有一个数组:
Array
(
[0] =>
[6] => 6
[3] => 5
[2] => 7
)
我正在检查数组中是否有设定值。
if(in_array(5, $array)) {
//do something
} else {
// do something else
}
问题是,当它在数组中找到值5时,我真的需要在我的"做某事"。
中使用密钥。在这种情况下,我需要设置:
$key = 3;
(找到的值in_array中的键)。
有什么建议吗?
答案 0 :(得分:100)
array_search()
正是您要找的。 p>
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] }}">