多次元配列を取得しました。
各サブアレイから、価格が1500を超える値を削除/設定解除したいと思います。
アレイ
$item = array(
'phone' => array(
array(
'Item' => 'S5',
'info' => array(
array('seller' => 'John', 'price' => 1800),
array('seller' => 'Mason','price' => 1200),
array('seller' => 'Alex','price' => 1500),
),
),
array(
'Item' => 'iPhone 5',
'info' => array(
array('seller' => 'Depay', 'price' => 1900),
array('seller' => 'David', 'price' => 1450),
array('seller' => 'Daemon', 'price' => 1600),
)
),
),
);
私のコード:
foreach($item['phone'] as $key =>$price)
{
foreach($price['info'] as $info => $price2 )
{
if ($info['price'] >= 1500)
{
unset($item[$key][$info ]);
}
}
}
このコードが機能しないのはなぜですか?これはできますか?はいの場合...どうやって?
前もって感謝します :-)
間違った要素レベルを参照しています:
foreach($item['phone'] as $key =>$price)
{
foreach($price['info'] as $info => $price2 ) // $price2
{
if ($info['price'] >= 1500) // should be $price2
{
unset($item[$key][$info ]);
}
}
}
あなたは$price2
あなたの状態を指摘する必要があります:
if ($price2['price'] >= 1500) {
次に、設定を解除するときに、インデックスをポイント/ウォークインする必要があります
// write the complete address of this element you want to unset
unset($item['phone'][$key]['info'][$info]);
// ^ ^ don't forget this since they are part of the structure
全体として:
foreach($item['phone'] as $key =>$price)
{
foreach($price['info'] as $info => $price2 )
{
if ($price2['price'] >= 1500) {
unset($item['phone'][$key]['info'][$info]);
}
}
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加