programing

PHP in_array()에서 키를 얻는 방법은 무엇입니까?

lovejava 2023. 9. 11. 21:18

PHP in_array()에서 키를 얻는 방법은 무엇입니까?

사소한 문제로 고생하고 있습니다.

배열이 있습니다.

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

어레이에 설정값이 있는지 확인 중입니다.

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

문제는 배열에서 5 값을 찾았을 때, 저는 정말로 "뭔가를 실행"하기 위한 키가 필요하다는 것입니다.

이 경우 다음을 설정해야 합니다.

$key = 3;

(_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를 대신 사용할 수도 있습니다. 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] }}">

언급URL : https://stackoverflow.com/questions/11836741/php-if-in-array-how-to-get-the-key-as-well