私は配列そうように持って指定された後に、配列のすべての要素を削除する方法:PHP -
アレイ([740073] => Leetee猫1 [720102] =>猫1 SUBCAT 1 [730106 ] => subsubcat [740107] =>別[730109] =>テスト猫)
私は '720102' のキーを持つ要素の後に来る配列のすべての要素を削除します。だから、配列にはなるだろう:
アレイ([740073] => Leetee猫1 [720102] =>猫1 SUBCAT 1)
私はこれをどのように実現するのでしょうか?私はこれまでのところ腹筋しか持っていません...
foreach ($category as $cat_id => $cat){
if ($cat_id == $cat_parent_id){
//remove this element in array and all elements that come after it
}
}
[編集]第1の答えは、ほとんどの場合ではあるがすべてではないようです。元の配列に2つの項目しかない場合は、最初の要素だけが削除されますが、後の要素は削除されません。 2つだけの要素
がある場合にアレイ([740073] => Leetee猫1 [740102] =>猫1 SUBCAT 1)
は
アレイ([740073]となります=> [740102] => cat 1 subcat 1)
これはなぜですか?あり、これを達成するにはいくつかの方法がありますが、フラグが設定されている場合、あなたの現在の構造を使用すると、あなたがフラグを設定し、削除することができ、この
$newcats = array();
foreach($category as $cat_id => $cat)
{
if($cat_id == $cat_parent_id)
break;
$newcats[$cat_id] = $cat;
}
$category = $newcats;
これはほとんどの場合に機能するようですが、すべてではないようです。動作しないものの例を示す元のメッセージへの編集を参照してください。 – LeeTee
OK、awnswerは正しかったが、$ position = 0なら問題があった。if($ position)ではなく$ position!== FALSEと書く必要がある。ありがとう – LeeTee
それについて申し訳ありません。それは完璧な意味合いがあります。 ;)私は上記の答えを修正します。 –