プロジェクトに取り組んでおり、その下のサブ ID のレコードをクエリするために複数の親 ID が必要です。単一の親 ID のレコードのみをクエリできる関数を作成しました。複数の記述方法がわかりません。誰ができるかわかりません。助けてくれてありがとう!私が書いた関数は次のとおりです:
function get_child_id($data, $parent_id = '0') { static $child; foreach ($data as $value) { if ($value['parent_id'] == $parent_id) { $child .= ',' . $value['cat_id']; $this->get_child_id($data, $value['cat_id'], $level + 1); } } return $child; }
ループ内でメソッドを呼び出すだけです。
$parent_ids = array(1,2,3,4);$resul t= array();foreach($parent_ids as $parent_id){ $result[] = get_child_id($data, $parent_id);}function get_child_id($data, $parent_id = '0') { static $child; foreach ($data as $value) { if ($value['parent_id'] == $parent_id) { $child .= ',' . $value['cat_id']; $this->get_child_id($data, $value['cat_id'], $level + 1); } } return $child; }
親 ID ごとに get_child_id を呼び出すだけで十分ではないでしょうか?
ただし、static $child; を複数回呼び出すと問題が発生します
get_child_id を複数回ループすると、サブ列 ID が繰り返し表示されます
#2 お伝えしました問題が発生します
核心は static $child; です。
function get_child_id($data, $parent_id = '0') { $child = ''; foreach ($data as $value) { if ($value['parent_id'] == $parent_id) { $child .= ',' . $value['cat_id']; $child .= $this->get_child_id($data, $value['cat_id'], $level + 1); } } return $child; }
これを発見しましたが、サブ列 ID がまだ重複しています
テスト データを投稿してください。ID は一意ではないはずです (いいえ)無限ループはすでにあなたに対して非常に丁寧です)
テスト データを投稿します。ID は一意ではないはずです (無限ループはすでにあなたに対して非常に丁寧です)
私 #4 がコードを渡しましたよね?
私 #4 がコードを渡しませんでしたか?