-1

同様の質問をしていますリクエスト値を配列と比較します-うまくいきません、私のシナリオはまったく異なります

    $mkt =   array(
        array( 
            'title' => "Photos", 
            'iconlink' => "http://example.com/xyz.png",
            'pkg' => 'test' 
        ),
        array( 
            'title' => "code",
            'iconlink' => "http://example.com/xyz.png",
            'pkg' => 'main' 
        ),
        array( 
            'title' => "code",
            'iconlink' => "http://example.com/xyz.png",
            'pkg' => 'main' 
        ));

この問題でロジックの問題が発生しています。問題は、$_REQUEST変数を介して値を取得してから、この要求値を配列 pkg 要素と比較することです。比較が真の場合、一致したもの以外の別の要素を取得したい。これで提案されているように、一致する要素のキーを削除するために unset を使用しており、すべての配列が新しい変数を指しています。これは機能しますが、配列の最初の要素では機能しません。リクエスト変数を配列の最初の要素と比較すると、 nullが表示されます。

 $mkt = array();
$newArray = $mkt;

foreach ($newArray as $key => $value ) {

    if (in_array($pn, $mkt, true)) {
        unset($newArray[$key]);
    }
}

$rand_ad = array_rand( $newArray, 1 );

echo json_encode( $newArray[$rand_ad] );

この号をご覧いただき、誠にありがとうございます。

4

1 に答える 1

1

各値をループします。$pnそのループと等しい場合は、その要素pkgよりも設定が解除されます。unset

$pn = 'main';
$newArray = $mkt;
foreach ($newArray as $key => $val) {
    if ($pn == $val['pkg']) {
        unset($newArray[$key]);
    }
}
echo json_encode($newArray);
// [{"title":"Photos","iconlink":"http:\/\/example.com\/xyz.png","pkg":"test"}]
于 2012-09-28T09:57:16.153 に答える