2017-07-09 4 views
2

を失敗し、その後動作します。それは最初の場所に存在します。しかし、2番目の部分が実行され(if文)、array_spliceが実行されます。 print_rの出力は以下の通りです。PHP - - 期待どおりに動作しないarray_searchは、だから私は、次のしている

そこにあっても何が実行されていますか?

私はTier2、文字のための文字(2が期待される)と全く同じコードを持ち、それは期待通りに機能します。

Array 
(
    [0] => Array 
     (
      [status] => Resolved at Tier 1 
      [amount] => 10 
     ) 

    [1] => Array 
     (
      [status] => Resolved at Tier 2 
      [amount] => 7 
     ) 

    [2] => Array 
     (
      [status] => Resolved Total 
      [amount] => 17 
     ) 

    [3] => Array 
     (
      [status] => Phone Calls 
      [amount] => 0 
     ) 

) 
Array 
(
    [0] => Array 
     (
      [status] => Resolved at Tier 1 
      [amount] => 0 
     ) 

    [1] => Array 
     (
      [status] => Resolved at Tier 1 
      [amount] => 10 
     ) 

    [2] => Array 
     (
      [status] => Resolved at Tier 2 
      [amount] => 7 
     ) 

    [3] => Array 
     (
      [status] => Resolved Total 
      [amount] => 17 
     ) 

    [4] => Array 
     (
      [status] => Phone Calls 
      [amount] => 0 
     ) 

) 
+0

なぜ$ resolvedは既に配列なので、$ resolvedの代わりにsplicedステートメントの最後にarray($ resolved)を持っていますか? – Difster

+0

これは私が見たことですが、それにかかわらず検索はまだ動作していません – pee2pee

+0

何か問題がありますか?あなたはログをチェックしましたか? – Difster

答えて

1

http://php.net/manual/en/function.array-search.phpの警告をお読みください。型ジャグリング後に0 == false。あなたは必要があります。代わりに

if (false !== array_search ... 

if (!array_search... 

編集を追加する:ティア予想として2つの作品を、ゼロより大きいインデックスが 'truthy' であるため。

+0

if(false === array_searchそれをソートしたようだ – pee2pee

関連する問題