/** * 按照value删除数组对应的项 * * @param array $haystack 需要操作的array * @param mixed $needles 需要删除的value,可以是value的数组或一个value的字符串 * @param boolean $strict 是否强制对比类型 * @return array 返回操作结果 */ function array_delete(array &$haystack, $needles, $strict = FALSE) { $needles = toarray($needles); $_haystack = $haystack; foreach ($needles as $needle) { $indexes = array_keys($_haystack, $needle, $strict); foreach ($indexes as $index) { unset($_haystack[$index]); } } return $_haystack; }
function toarray($data, $id) { $bookmarks = array(); foreach ($data as $entry) { $id++; $bookmarks['_' . $id] = array('id' => $id, 'type' => $entry['type'], 'name' => $entry['name'], 'date_added' => round($entry['date_added'] / 10000000)); if ($entry['type'] == 'url') { $bookmarks['_' . $id]['url'] = isset($entry['url']) ? $entry['url'] : ''; } elseif ($entry['type'] == 'folder' && isset($entry['children']) && !empty($entry['children'])) { $result = toarray($entry['children'], $id); $bookmarks['_' . $id]['entries'] = $result[0]; $id = $result[1]; } } return array($bookmarks, $id); }