code

PHP : 숫자 인덱스에서 연관 배열 키를 얻는 방법?

codestyles 2020. 10. 31. 09:44
반응형

PHP : 숫자 인덱스에서 연관 배열 키를 얻는 방법?


만약 내가 가지고 있다면:

$array = array( 'one' =>'value', 'two' => 'value2' );

어떻게 문자열을 one되 찾을 수 $array[1]있습니까?


당신은하지 않습니다. 배열에 키가 없습니다 [1]. 다음과 같이 할 수 있습니다.

  • 키를 포함하는 새 배열을 만듭니다.

    $newArray = array_keys($array);
    echo $newArray[0];
    

    그러나 값이 "하나"에 있습니다 $newArray[0], 없습니다 [1].
    단축키는 다음과 같습니다.

    echo current(array_keys($array));
    
  • 배열의 첫 번째 키를 가져옵니다.

     reset($array);
     echo key($array);
    
  • "value"값에 해당하는 키를 가져옵니다.

    echo array_search('value', $array);
    

이 모든 것은 정확히 당신이하고 싶은 일에 달려 있습니다. 사실은 [1]어떤 방향으로 돌려도 "하나"에 해당하지 않습니다.


$array = array( 'one' =>'value', 'two' => 'value2' );

$allKeys = array_keys($array);
echo $allKeys[0];

다음을 출력합니다.

one

특히 하나의 키로 만 작업하려는 경우 모든 키에 대한 배열을 저장할 필요없이 한 줄로이 작업을 수행 할 수 있습니다.

echo array_keys($array)[$i];

또는 루프에서 필요한 경우

foreach ($array as $key => $value)
{
    echo $key . ':' . $value . "\n";
}
//Result: 
//one:value
//two:value2

$array = array( 'one' =>'value', 'two' => 'value2' );
$keys  = array_keys($array);
echo $keys[0]; // one
echo $keys[1]; // two

다음과 같이 할 수 있습니다.

function asoccArrayValueWithNumKey(&$arr, $key) {
   if (!(count($arr) > $key)) return false;
   reset($array);
   $aux   = -1;
   $found = false;
   while (($auxKey = key($array)) && !$found) {
      $aux++;
      $found = ($aux == $key);
   }
   if ($found) return $array[$auxKey];
   else return false;
}

$val = asoccArrayValueWithNumKey($array, 0);
$val = asoccArrayValueWithNumKey($array, 1);
etc...

Haven't tryed the code, but i'm pretty sure it will work.

Good luck!


the key function helped me and is very simple


Expanding on Ram Dane's answer, the key function is an alternative way to get the key of the current index of the array. You can create the following function,

    function get_key($array, $index){
      $idx=0;
      while($idx!=$index  && next($array)) $idx++;
      if($idx==$index) return key($array);
      else return '';
    }

참고URL : https://stackoverflow.com/questions/4095796/php-how-to-get-associative-array-key-from-numeric-index

반응형