program tip

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

radiobox 2021. 1. 6. 07:58
반응형

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


작은 문제로 고군분투합니다.

배열이 있습니다.

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) {
...

값을 찾을 수 없으면 false를 반환하고 값이 있으면 인덱스를 반환하는 array_search를 대신 사용할 수 있습니다. 여기 에서 설명을 확인 하세요.


당신은 시도 할 수 있습니다

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

이렇게하면 해당 키가 존재하는지 알 수 있으며 그렇지 않은 경우 해당 키로 수행 한 작업에 따라 알림, 경고 또는 치명적인 스크립트 오류가 발생하지 않습니다.


누군가가 arrrays 배열로 필요로 할 경우. 내 경우는 다음과 같습니다.

다음과 같은 배열이 있습니다.

$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

반응형