Ответ 1
array_search()
- это то, что вы ищете.
if (false !== $key = array_search(5, $array)) {
//do something
} else {
// do something else
}
Борьба с крошечной проблемой.
У меня есть массив:
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)) {
//do something
} else {
// do something else
}
Если вам нужен только ключ первого совпадения, используйте 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) {
...
Возможно, вы захотите использовать array_search вместо этого, который возвращает false, если значение не найдено и индекс, если значение найдено. Ознакомьтесь с описанием здесь
Вы можете попробовать
if(in_array(5, $array))
{
$key = array_search(5, $array);
echo $key;
}
Таким образом, вы знаете, что он существует, и если он этого не делает, он не вызывает уведомления, предупреждения или фатальные ошибки script в зависимости от того, что вы делаете с этим ключом после этого.
На случай, если кому-то это нужно в массиве массивов. Мой случай был такой:
У меня был такой массив:
$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] }}">