0

次のように $users という名前の配列があります。

$users = Array
(
    [d3c1ac9ac08da86e73258a11a43251af] => enable 
    [b993166c4795b3bfe96640e55e8dcbbc] =>  enable 
    [77d4721ada7677feda77a250c7cee1c4] =>  disable 
    [68d6e7a8c09c77c5fec49945beaea4f8] =>  disable 
    [85634bc9cdbcb6b39eaf4946b99db5de] =>  disable 
    [bb1a20794d65966b950c5933100496ce] =>  disable 
    [59ee376a9d126a26b350fff3110ea825] =>  disable 
    [428895b1ae5f3226345e6c6f256c7c85] =>  disable 
    [78a619902b22a1f17def5198179334be] =>  disable 
    [ab5ca5cbfd45c7bd0e0817b200597682] =>  disable 
    [2e0ae6cdce7647daf73d3d370a7a12f8] =>  disable 
    [867d3433169d05323a4ff350ca21b1c9] =>  disable 
    [3dddd9a46cfeb4e4d3607fb178113656] =>  disable 
    [ba908fd0f04f245c82ed379bd3f57285] =>  disable 
    [ec702094416ad4789288f3f64b3537a7] =>  disable 
    [cbb677ed11c1838281c6962d52f62b8a] =>  disable 
    [45a1e20492f043d404580becad029f12] =>  disable 
    [8b1acc0101378e60985f8200fa3900de] =>  disable 
    [f063e4cd1b86f389f2647c4211498615] =>  disable 
    [f3639eb674adbb243579942d3746044a] =>  disable
)

今、私は次のループを持っています:

foreach ($users as $id => $status) {  
  if($status == disable) { echo "Yes"; die;
    $objAdminUsers->UpdateUserStatus($id, $status); 
    $count++;
  }
}

私の問題は、配列を 1 つずつトラバースしているとき、if 条件の中に入ることができないことです。しかし、個々の配列要素を入れると、if 条件が機能し、すべてが完全に機能します。配列をたどっているときにif条件に入れない理由を教えてもらえますか? 上記のコードで書いたサンプル メッセージもエコーされません。この点で私を助けてもらえますか?前もって感謝します。

4

1 に答える 1

0

1)前/同じ質問からのコピー/貼り付けに失敗しました。

2)配列には(最初の文字はスペースです)の$usersような値があり、そうではないため、ステートメントが機能していません。ユーザー @AmalMurali は、以前の質問でこれを修正する方法をすでに書いています。彼は次のようなデモを貼り付けました:_disabledisableif

$array = array_combine($user_ids, $user_statuses);
$array = array_map('trim', $array); // remove whitespaces

3) エラー報告をオンにすると、バグが表示されます。

ini_set('display_errors', 1);
error_reporting(-1);

4)おそらく定数を定義していないdisableので、次のようになります:

if ($status == disable) {

は無効であり、(ポイント 3. で述べたように) エラー報告をオンにしている場合は、次のような通知が表示されます。

Notice: Use of undefined constant disable - assumed 'disable'
于 2013-10-12T15:23:32.413 に答える