Tôi đang gặp một tình huống khó xử, tôi đang cố gắng tạo một hàm để tìm kiếm động "máng" một mảng, trong trường hợp này là mảng phiên của tôi, nhưng nó nên là cho bất kỳ. Bây giờ không phải là vấn đề của tôi, vấn đề của tôi là để tự động cho phép điều này được thực hiện ...Tìm kiếm động thông qua một mảng
Đây là những gì tôi có
public static function get($search = 'First/Second/Third') {
$explode = explode('/',$search);
$count = count($explode);
if ($count == 1)
if (isset($_SESSION[$explode[0]]))
return $_SESSION[$explode[0]];
elseif ($count == 2)
if (isset($_SESSION[$explode[0]][$explode[1]]))
return $_SESSION[$explode[0]][$explode[1]];
elseif ($count == 3)
if (isset($_SESSION[$explode[0]][$explode[1]][$explode[2]]))
return $_SESSION[$explode[0]][$explode[1]][$explode[2]];
}
Vì vậy, chúng ta hãy nói rằng tôi có một mảng:
array('First' => array('Second' => array('Third' => 'TEST VALUE'));
Bây giờ tôi muốn gọi
$value = get('First/Second/Third');
và sau đó nhận "Giá trị thử nghiệm" trở lại làm giá trị cho biến giá trị $ của tôi.
Trong trường hợp này nó hoạt động, nhưng nó không phải là năng động, và tôi muốn nó có thể xử lý thậm chí một mảng sâu 10 lớp là tốt, mà không cần thêm nhiều hơn và nhiều hơn nữa ...
Có lẽ ai đó ở đây thông minh hơn tôi :)
Cảm ơn !!
Đây là một giải pháp tuyệt vời. Tôi xấu hổ khi thừa nhận tôi đã lặp lại eval() khi tôi gặp vấn đề này một lần. – Andri
Nhưng tại sao '' $ data = isset ($ data [$ key])? $ data [$ key]: null'' thay cho chỉ '' $ data = $ data [$ key] ''? Nếu không có khóa như vậy, '' $ data'' sẽ là null?!? – mzedeler
TUYỆT VỜI !!!! Tôi thích giải pháp tốt đẹp và sạch sẽ này, nó chỉ đơn giản là hoàn hảo! Cảm ơn Baba! –