1

Google で検索し、PHP のドキュメントを参照しましたが、次のコードがどのように機能するかわかりませんでした。

$some='name=Licensing Module;nextduedate=2013-04-10;status=Active|name=Test Addon;nextduedate=2013-04-11;status=Active';
function getActiveAddons($somet) {
    $addons = array( );
    foreach ($somet as $addon) {

        if ($addon['status'] == 'Active') {
            $addons[] = $addon['name'];
            continue;
        }
    }

    return $addons;
}
echo (count( getActiveAddons( $some ) ) ? implode( '<br />', getActiveAddons( $some ) ) : 'None');

コードは常にNone.

これで私を助けてください。

4

3 に答える 3

0

$some は配列ではないため、foreach はそれを操作しません。次のようなことをする必要があります

$some = array(
   array(
      'name' => 'Licensing Module',
      'nextduedate' => '2013-04-10',
      'status' => 'Active'
   ),
   array(
      'name' => 'Test Addon',
      'nextduedate' => '2013-04-11',
      'status'=> 'Active'
   )
);

これにより、ループできる多次元配列が作成されます。

function getActiveAddons($somet) {
    $addons = array( );
    foreach ($somet as $addon) {
        foreach($addon as $key => $value) {
            if ($key == 'status' && $value == 'Active') {
                $addons[] = $addon['name'];
                continue;
            }
        }
    }
    return $addons;
}
于 2013-04-11T17:32:24.290 に答える