{"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>"}