{"id":422,"title":"\u53d6\u65e0\u9650\u7ea7\u83dc\u5355\u7684\u4e0b\u7ea7ids","good":0,"bad":0,"hit":1766,"created_at":"2019-03-08 17:43:08","content":"
\u81ea\u5df1\u5199\u7684
<\/p>
\/**\n * \u53d6\u4e0b\u7ea7ids\n * @param $arr\n * @param string $idName id\u5b57\u6bb5\u540d\n * @param string $pidName \u4e0a\u7ea7id\u5b57\u6bb5\u540d\n * @param number $idValue \u8981\u7684\u7684id\u7684\u503c\n * @param int $try \u6807\u8bb0\u7b2c\u4e00\u6b21\uff0cforeach\u4e2dstatic\u53d8\u91cf\u95ee\u9898\n * @return array \u5305\u62ec\u67e5\u8be2\u7684id\u672c\u8eab\n *\/\nfunction getSonIds($arr, $idName, $pidName, $idValue, $try = 0)\n{\n static $cols = [];\n static $ids = [];\n if (!$try && ($cols || $ids)) {\n $cols = [];\n $ids = [];\n }\n $finds = array_column_search($arr, $pidName, $idValue);\n if ($finds) {\n $cols = array_merge($cols, $finds);\n }\n if ($finds) {\n ++$try;\n foreach ($finds as $find) {\n getSonIds($arr, $idName, $pidName, $find[$idName], $try);\n }\n }\n if ($cols) {\n $ids = array_column($cols, $idName);\n }\n array_push($ids, $idValue);\n\n return $ids;\n}\n\nfunction array_column_search($arr, $filed, $value)\n{\n $return = [];\n foreach ($arr as $k => $v) {\n if ($v[$filed] == $value) {\n $return[] = $v;\n }\n }\n return $return;\n}<\/pre>
<\/p>"}