Đây là một giải pháp một dòng:
echo strpos[json_encode[$array], $key] > 0 ? "found" : "not found";
Điều này chuyển đổi mảng thành một chuỗi chứa tương đương JSON, sau đó nó sử dụng chuỗi đó làm đối số HayStack của hàm strpos [] và nó sử dụng phím $ làm đối số kim [phím $ là giá trị để tìm trong chuỗi JSON].
Có thể hữu ích khi làm điều này để xem chuỗi được chuyển đổi: echo json_encode[$array];
Hãy chắc chắn gửi lại đối số kim trong các trích dẫn đơn sau đó trích dẫn gấp đôi vì phần tên của cặp tên/giá trị trong chuỗi JSON sẽ xuất hiện với các trích dẫn kép xung quanh nó. Chẳng hạn, nếu tìm kiếm 22 trong mảng bên dưới thì $key = '"22"'
sẽ cho kết quả chính xác không tìm thấy trong mảng này:not found in this array:
$array =
Array [
21 => Array [ ],
24 =>
Array [
522 => Array [ ],
25 =>
Array [
26 => Array [ ]
]
]
];
Tuy nhiên, nếu các trích dẫn đơn bị bỏ lại, như trong $key = "22"
thì kết quả tìm thấy không chính xác sẽ kết quả cho mảng ở trên.found will result for the array above.
EDIT: Một cải tiến hơn nữa sẽ là tìm kiếm $key = '"22":';
chỉ trong khi có giá trị "22"
tồn tại trong mảng. I E. 27 => "22"
Ngoài ra, phương pháp này không phải là chống đạn. Tìm thấy không chính xác có thể dẫn đến nếu bất kỳ giá trị nào của mảng chứa chuỗi '"22":'
A further improvement would be to search for $key = '"22":';
just incase a value of "22"
exists in the array. ie.
27 => "22"
In addition, this approach is not bullet proof. An incorrect found could result if any of the array's values contain the string '"22":'
[Php 4> = 4.0.7, Php 5, Php 7, Php 8]
Array_Key_Exists - Kiểm tra xem phím hoặc chỉ mục đã cho có tồn tại trong mảng không — Checks if the given key or index exists in the array
Sự mô tả
mảng_key_exists [chuỗi | int $key
, mảng
0]: bool[string|int $array =
Array [
21 => Array [ ],
24 =>
Array [
522 => Array [ ],
25 =>
Array [
26 => Array [ ]
]
]
];
$key
, array
0]: bool$array =
Array [
21 => Array [ ],
24 =>
Array [
522 => Array [ ],
25 =>
Array [
26 => Array [ ]
]
]
];
Thông số
$array =
Array [
21 => Array [ ],
24 =>
Array [
522 => Array [ ],
25 =>
Array [
26 => Array [ ]
]
]
];
1Giá trị để kiểm tra.
$array =
Array [
21 => Array [ ],
24 =>
Array [
522 => Array [ ],
25 =>
Array [
26 => Array [ ]
]
]
];
2Một mảng có các phím để kiểm tra.
Trả về giá trị
Trả về
$array =
Array [
21 => Array [ ],
24 =>
Array [
522 => Array [ ],
25 =>
Array [
26 => Array [ ]
]
]
];
3 khi thành công hoặc $array =
Array [
21 => Array [ ],
24 =>
Array [
522 => Array [ ],
25 =>
Array [
26 => Array [ ]
]
]
];
4 về thất bại.$array =
Array [
21 => Array [ ],
24 =>
Array [
522 => Array [ ],
25 =>
Array [
26 => Array [ ]
]
]
];
3 on success or $array =
Array [
21 => Array [ ],
24 =>
Array [
522 => Array [ ],
25 =>
Array [
26 => Array [ ]
]
]
];
4 on failure. Ghi chú::
Array_Key_Exists [] sẽ chỉ tìm kiếm các khóa trong chiều đầu tiên. Các phím lồng nhau trong các mảng đa chiều sẽ không được tìm thấy. will search for the keys in the first dimension only. Nested keys in multidimensional arrays will not be found.
Ví dụ
Ví dụ #1 Array_Key_Exists [] Ví dụarray_key_exists[] example
$array =
Array [
21 => Array [ ],
24 =>
Array [
522 => Array [ ],
25 =>
Array [
26 => Array [ ]
]
]
];
5Ví dụ #2 mảng_key_exists [] vs isset []array_key_exists[] vs isset[]
ISSET [] không trả về
3 cho các khóa mảng tương ứng với giá trị $array =
Array [
21 => Array [ ],
24 =>
Array [
522 => Array [ ],
25 =>
Array [
26 => Array [ ]
]
]
];
7, trong khi Array_Key_Exists []. does not return $array =
Array [
21 => Array [ ],
24 =>
Array [
522 => Array [ ],
25 =>
Array [
26 => Array [ ]
]
]
];
3 for array keys that correspond to a $array =
Array [
21 => Array [ ],
24 =>
Array [
522 => Array [ ],
25 =>
Array [
26 => Array [ ]
]
]
];
7 value, while array_key_exists[] does. $array =
Array [
21 => Array [ ],
24 =>
Array [
522 => Array [ ],
25 =>
Array [
26 => Array [ ]
]
]
];
$array =
Array [
21 => Array [ ],
24 =>
Array [
522 => Array [ ],
25 =>
Array [
26 => Array [ ]
]
]
];
8Ghi chú
Ghi chú::
Array_Key_Exists [] sẽ chỉ tìm kiếm các khóa trong chiều đầu tiên. Các phím lồng nhau trong các mảng đa chiều sẽ không được tìm thấy.array_key_exists[] will also return
3 if$array = Array [ 21 => Array [ ], 24 => Array [ 522 => Array [ ], 25 => Array [ 26 => Array [ ] ] ] ];
1 is a property defined within an object given as$array = Array [ 21 => Array [ ], 24 => Array [ 522 => Array [ ], 25 => Array [ 26 => Array [ ] ] ] ];
2. This behaviour is deprecated as of PHP 7.4.0, and removed as of PHP 8.0.0.$array = Array [ 21 => Array [ ], 24 => Array [ 522 => Array [ ], 25 => Array [ 26 => Array [ ] ] ] ];
Ví dụproperty_exists[] should be used.
Ví dụ #1 Array_Key_Exists [] Ví dụ
- Ví dụ #2 mảng_key_exists [] vs isset []
- ISSET [] không trả về
3 cho các khóa mảng tương ứng với giá trị$array = Array [ 21 => Array [ ], 24 => Array [ 522 => Array [ ], 25 => Array [ 26 => Array [ ] ] ] ];
7, trong khi Array_Key_Exists [].$array = Array [ 21 => Array [ ], 24 => Array [ 522 => Array [ ], 25 => Array [ 26 => Array [ ] ] ] ];
- Ghi chú
- Vì lý do tương thích ngược, Array_Key_Exists [] cũng sẽ trả về
3 nếu$array = Array [ 21 => Array [ ], 24 => Array [ 522 => Array [ ], 25 => Array [ 26 => Array [ ] ] ] ];
1 là một thuộc tính được xác định trong một đối tượng được đưa ra là$array = Array [ 21 => Array [ ], 24 => Array [ 522 => Array [ ], 25 => Array [ 26 => Array [ ] ] ] ];
2. Hành vi này không được chấp nhận kể từ Php 7.4.0 và bị loại bỏ là Php 8.0.0.$array = Array [ 21 => Array [ ], 24 => Array [ 522 => Array [ ], 25 => Array [ 26 => Array [ ] ] ] ];
Để kiểm tra xem một thuộc tính có tồn tại trong một đối tượng hay không, nên sử dụng property_exists []. ¶
Xem thêm
echo json_encode[$array];
2
echo json_encode[$array];
3
echo json_encode[$array];
4
echo json_encode[$array];
5