0

私はこのような配列を持っています:

Array
(
[206] => Array
    (
        [1] => Array
            (
                [formatid] => 1
                [format] => CD
                [formatseourl] => cd
            )

    )

[556] => Array
    (
        [] => Array
            (
                [formatid] => 
                [format] => 
                [formatseourl] => 
            )

    )

[413] => Array
    (
        [3] => Array
            (
                [formatid] => 3
                [format] => CASETE
                [formatseourl] => casete
            )

    )
)

...そして、特定のキーについて値を取得したいのですが、その前に値があるかどうかを検証する必要があります。コードはビルドされていますが、配列内に値があるかどうかを検証する方法がわかりません... isset、empty、count、array_key_exists を試してみましたが成功しませんでした...私は近いことを知っています...

$key = 556;

//if there are no formats in array, dont bother to create the ul
if (?????????formats exist in $array[$key]) { ?>
    <ul><?php
       foreach ($array[$key] as $value) { ?>
         <li><?php echo $value['format']; ?></li><?php
       } ?>
    </ul><?php
} ?>
4

2 に答える 2

1

これを試して..

<?php

$key = 556;
$desiredValue = "format";
$subArray = $array[$key];
$arrayForFunction = array_pop($subArray);
if(array_key_exists($desiredValue,$arrayForFunction) && strlen($arrayForFunction[$desiredValue]))
    echo "<ul><li>".$arrayForFunction[$desiredValue]."</li></ul>";

?>
于 2013-07-31T15:45:43.407 に答える
1

この関数を呼び出しformat_exists($array[$key])て、値を掘り下げてフォーマットが設定されているかどうかを確認します。

function format_exists($values) {
  if (!$values || !is_array($values)) return false;

  $data = array_shift($values);
  return $data && is_array($data) && isset($data["format"]);
}
于 2013-07-31T15:46:23.407 に答える