0

これはvar_dump($options)

array (size=4)
  0 => string '2' (length=1)
  'parent_2_children' => 
    array (size=3)
      0 => string '22' (length=2)
      1 => string '24' (length=2)
      2 => string '23' (length=2)
  1 => string '3' (length=1)
  'parent_3_children' => 
    array (size=3)
      0 => string '26' (length=2)
      1 => string '25' (length=2)
      2 => string '27' (length=2)

私が今まで試したことは、

if(!is_null($options))
        {
            foreach($options as $option)
            {
                 if(!array_key_exists('parent_'.$option.'_children',$options))
                 {
                    //if position null output an error
                 }
            }   


        }

要求に応じて Print_r()

Array
(
    [0] => 2
    [parent_2_children] => Array
        (
            [0] => 22
            [1] => 24
            [2] => 23
        )

    [1] => 3
    [parent_3_children] => Array
        (
            [0] => 26
            [1] => 25
            [2] => 27
        )

)
4

3 に答える 3

1

読みやすいので使用print_r($options)してください。var_dump

テンキーを取得したかどうかを確認してから、新しいキーが存在するかどうかを確認します。エラーをスローします。

if(!is_null($options)) {
    foreach($options as $key => $option) {
        if(is_int($key) && !array_key_exists('parent_'.$option.'_children',$options)) {
           echo 'parent_'.$option.'_children does not exist';
        }
    }   
}

これが実際の例です

于 2012-10-24T07:08:30.017 に答える
0

あなたのコードは正しいです。数値キーのみの処理を行う必要があるため、キーの性質に関する追加のチェックにより、実行が削減されます。

    if(!is_null($options))
    {
        foreach($options as $key => $option)
        {
            if (is_numeric($key)) {
                 if(!array_key_exists('parent_'.$option.'_children',$options))
                  {
                       print 'parent_'.$option.'_children does not exist';
                   }
             }
        }   


    }

コードをテストするには、次の配列を試してください。

 $options = array(0 => 2, 'parent_2_children' => array ( 0 => 22, 1 => 24, 2 => 23 ), 1 => 3, 'parent_3_children' => array ( 0 => 26, 1 => 25, 2 => 27 ), 2=>4 ); 

print_r の出力は次のようになります。

 Array
(
[0] => 2
[parent_2_children] => Array
    (
        [0] => 22
        [1] => 24
        [2] => 23
    )

[1] => 3
[parent_3_children] => Array
    (
        [0] => 26
        [1] => 25
        [2] => 27
    )

[2] => 4

)

そして、それは出力します:

  parent_4_children does not exist
于 2012-10-24T07:16:51.323 に答える
0

これを試して?

if(!is_null($options)){
    foreach($options as $option){
        if(!array_key_exists('parent_'.$option.'_children',$options)){
            throw new Exception("Something went wrong!");
        }
    }   
}
于 2012-10-24T07:14:28.750 に答える