Despite PHP's amazing assortment of array functions and juggling maneuvers, I found myself needing a way to get the FULL array key mapping to a specific value. This function does that, and returns an array of the appropriate keys to get to said [first] value occurrence.
function array_recursive_search_key_map[$needle, $haystack] {
foreach[$haystack as $first_level_key=>$value] {
if [$needle === $value] {
return array[$first_level_key];
} elseif [is_array[$value]] {
$callback = array_recursive_search_key_map[$needle, $value];
if [$callback] {
return array_merge[array[$first_level_key], $callback];
}
}
}
return false;
}
usage example:
-------------------
$nested_array = $sample_array = array[
'a' => array[
'one' => array ['aaa' => 'apple', 'bbb' => 'berry', 'ccc' => 'cantalope'],
'two' => array ['ddd' => 'dog', 'eee' => 'elephant', 'fff' => 'fox']
],
'b' => array[
'three' => array ['ggg' => 'glad', 'hhh' => 'happy', 'iii' => 'insane'],
'four' => array ['jjj' => 'jim', 'kkk' => 'kim', 'lll' => 'liam']
],
'c' => array[
'five' => array ['mmm' => 'mow', 'nnn' => 'no', 'ooo' => 'ohh'],
'six' => array ['ppp' => 'pidgeon', 'qqq' => 'quail', 'rrr' => 'rooster']
]
];
$search_value = 'insane';
$array_keymap = array_recursive_search_key_map[$search_value, $nested_array];
________số 8
----------------------------------------------
Search:
0
Search:
1function array_recursive_search_key_map[$needle, $haystack] {
0
foreach[$haystack as $first_level_key=>$value] {
if [$needle === $value] {
return array[$first_level_key];
} elseif [is_array[$value]] {
$callback = array_recursive_search_key_map[$needle, $value];
if [$callback] {
return array_merge[array[$first_level_key], $callback];
}
}
}
return false;
}
function array_recursive_search_key_map[$needle, $haystack] {
1
foreach[$haystack as $first_level_key=>$value] {
if [$needle === $value] {
return array[$first_level_key];
} elseif [is_array[$value]] {
$callback = array_recursive_search_key_map[$needle, $value];
if [$callback] {
return array_merge[array[$first_level_key], $callback];
}
}
}
return false;
}
Tôi hiện đang cố gắng hoàn thành một dự án trong đó các thông số kỹ thuật là sử dụng biểu mẫu tìm kiếm để tìm kiếm thông qua cơ sở dữ liệu đóng gói. Cơ sở dữ liệu có rất nhiều biến khác nhau, từ Kích cỡ, tên, loại và thịt. Tôi cần tạo một biểu mẫu tìm kiếm nơi người dùng có thể tìm kiếm bằng một số tìm kiếm khác nhau [chẳng hạn như tìm kiếm khay nắp dài 50 cm]
Tôi đã dành cả ngày để tạo một số mã PHP có thể tìm kiếm thông tin trong cơ sở dữ liệu thử nghiệm mà tôi đã tạo. Tôi đã gặp vô số lỗi từ lỗi mysql_fetch_array, lỗi boolean và hiện tại lỗi mới nhất của tôi là bảng của tôi dường như không tồn tại. Mặc dù tôi có thể nhập dữ liệu vào đó [các trang html và php nơi tôi có thể nhập dữ liệu], nhưng tôi không biết điều gì gây ra điều này và tôi đã bắt đầu lại vài lần
Bất cứ ai có thể cho tôi một số ý tưởng hoặc lời khuyên về những gì tôi sẽ phải làm hiện tại?
Tạo cơ sở dữ liệu
Trang biểu mẫu tìm kiếm HTML
Search:
Mã PHP tôi đang sử dụng để cố gắng thu thập thông tin từ cơ sở dữ liệu [Tôi đã viết lại mã này một vài lần, mã này cũng hiển thị "bảng. Liam không tồn tại"]
Các kết quả trong ví dụ trên được tìm thấy trong một tệp XML [liên kết. xml]. Để làm cho ví dụ này nhỏ và đơn giản, chỉ có sáu kết quả có sẵn
Giải thích ví dụ - Trang HTML
Khi người dùng nhập một ký tự vào trường nhập liệu ở trên, hàm "showResult[]" được thực thi. Chức năng được kích hoạt bởi sự kiện "onkeyup"
Giải thích mã nguồn
Nếu trường đầu vào trống [chuỗi. length==0], hàm sẽ xóa nội dung của trình giữ chỗ tìm kiếm trực tiếp và thoát khỏi hàm
Nếu trường đầu vào không trống, hàm showResult[] sẽ thực hiện như sau
- Tạo một đối tượng XMLHttpRequest
- Tạo chức năng sẽ được thực thi khi phản hồi của máy chủ đã sẵn sàng
- Gửi yêu cầu đến một tệp trên máy chủ
- Lưu ý rằng một tham số [q] được thêm vào URL [với nội dung của trường đầu vào]
Tệp PHP
Trang trên máy chủ được gọi bởi JavaScript ở trên là một tệp PHP có tên "livesearch. php"
Mã nguồn trong "livesearch. php" tìm kiếm một tệp XML cho các tiêu đề khớp với chuỗi tìm kiếm và trả về kết quả