24

キーが存在するかどうかを確認し、存在する場合は、phpの配列からこのキーの値を取得する方法についてのアイデア。

例えば

私はこの配列を持っています:

$things = array(
  'AA' => 'American history',
  'AB' => 'American cooking'
);

$key_to_check = 'AB';

ここで、$ key_to_checkが存在するかどうかを確認する必要があります。存在する場合は、対応する値を取得します。この場合は、アメリカ料理になります。

4

6 に答える 6

43
if(isset($things[$key_to_check])){
    echo $things[$key_to_check];
}
于 2012-09-04T17:27:17.877 に答える
30

この質問は非常に古いことは知っていますが、ここに来る人にとっては、php7でNull合体演算子を使用できることを知っておくと便利かもしれません。

if ($value = $things[ $key_to_check ] ?? null) {
      //Your code here
}
于 2016-10-13T05:57:44.150 に答える
24
if (array_key_exists($key_to_check, $things)) {
    return $things[$key_to_check];
}
于 2012-09-04T17:27:42.450 に答える
2

最も簡単なアプローチはこれを行うことです:

if( isset( $things[ $key_to_check ]) ) {
   $value = $things[ $key_to_check ];
   echo "key {$key_to_check} exists. Value: {$value}";
} else {
   echo "no key {$key_to_check} in array";
}

そして、通常の方法で値を取得します。

$value = $things[ $key_to_check ];
于 2012-09-04T17:27:41.677 に答える
2

isset()は次を返し ます:
------true if the key exists and the value is != NULL
false if the key exists and value == NULL
false if the key does not exist

array_key_exists()は次を返します :
--true if the key exists
false if the key does not exist

したがって、値がNULLの場合、適切な方法はarray_key_existsです。アプリケーションがNULLとキーなしを区別しない場合、どちらも機能しますが、array_key_exists常により多くのオプションを提供します。

次の例では、配列内のどのキーもNULLを返しませんが、特定のキーのNULLの値も返します。つまり、実質的にはと同じissetです。

null合体演算子(??)はPHP 7まで追加されませんでしたが、これはPHP 5、おそらく4に戻ります。

$value = (array_key_exists($key_to_check, $things) ? $things[$key_to_check] : NULL);

関数として:

function get_from_array($key_to_check, $things)
    return (array_key_exists($key_to_check,$things) ? $things[$key_to_check] : NULL);
于 2018-10-24T08:27:30.137 に答える
0

を使用するだけisset()で、関数として使用する場合は次のように使用できます。

function get_val($key_to_check, $array){
    if(isset($array[$key_to_check])) {
        return $array[$key_to_check]);
    }
}
于 2012-09-04T17:28:23.280 に答える