2012-02-27 4 views
0

連想配列セットに含まれていない番号を調べる方法はありますか?そうPHPの連想配列に含まれていないトグル番号

データは、総カウント数が18だった場合、私はprogrammically 7,8,9,10,11,12,14の出力を取得するにはどうすればよい

[options] => Array 
       (
        [1] => locality 
        [2] => postcode 
        [3] => dwelling_type 
        [4] => typical_value 
        [5] => dsr 
        [6] => dsr_summary 
        [13] => yield 
        [15] => search_dsr 
        [16] => sr 
        [17] => month 
        [18] => year 
       ) 

ですか?

解決しよう:

実は私の最終的な答えは

$existingKeys = array_keys($options['User']['options']); 
$Keys = range(0,18); 
$missingKeys = array_diff($Keys,$existingKeys); 

答えて

3
$existingKeys = array_keys($myArray['options']); 
$minMaxrange = range(min($existingKeys),max($existingKeys)); 
$missingKeys = array_diff($minMaxrange,$existingKeys); 
+0

申し訳メイトの近くにありますが、私は別の配列から取得したい[1,2,3,4,5 、6,7,8,9,10,11,12,13,14,15,16,17,18] –

+0

申し訳ありませんが、わかりません。あなたは[7,8,9,10,11,12,14] ... $ missingKeysの出力を求めました。 [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18]の出力が必要な場合は、$ minMaxrangeを使用します。オプション18が見つからないことが懸念される場合は、$ minMaxrangeの定義を変更してください...コードを見て、その動作を理解してください。 –

+0

あなたは正しいと思います。申し訳ありませんが、私はよく説明してください。私は最後の作業でこれを持っている!助けてくれてありがとう、私はあなたからこの考えを得た。 $ existingKeys = array_keys($ options ['User'] ['options']); \t \t \t \t \t $ Keys = array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18); \t \t \t \t \t $ missingKeys = array_diff($ Keys、$ existingKeys); –

0
<?php 

    $options = array(0=>"zero", 2=>"two", 4=>"four", 8=>"height"); 
    $optionsKeys = array_keys($options); 

    $optionsMissingKeys = array(); 

    for ($i=0 ; $i < $optionsKeys[count($optionsKeys)-1] ; $i++) { 

     if (in_array($i, $optionsKeys) == FALSE) 
      array_push($optionsMissingKeys, $i); 
    } 

    print_r($optionsMissingKeys); 
+0

@JohnKimはあなたのケースで動作するはずです、申し訳ありません、私は私の答えの多くの変更を行った、これは最終的な結果です – user544262772