나는이 연관 arrayes을하고 난 값은 단지 "경로"를 중요하지 않습니다배열의 특정 부분이 다른 배열에 있는지 확인하는 방법은 무엇입니까?
$array1["foo"]["bar"]["baz"] exists in $array2["foo"]["bar"]["baz"]
있는지 확인하고 싶습니다. array_ intersect_ assoc은 내가 필요한 것을 처리합니까?
만약 내가 어떻게 자신을 쓸 수 있습니까?
나는이 연관 arrayes을하고 난 값은 단지 "경로"를 중요하지 않습니다배열의 특정 부분이 다른 배열에 있는지 확인하는 방법은 무엇입니까?
$array1["foo"]["bar"]["baz"] exists in $array2["foo"]["bar"]["baz"]
있는지 확인하고 싶습니다. array_ intersect_ assoc은 내가 필요한 것을 처리합니까?
만약 내가 어떻게 자신을 쓸 수 있습니까?
이 시도 :
<?php
function array_path_exists(&$array, $path, $separator = '/')
{
$a =& $array;
$paths = explode($separator, $path);
$i = 0;
foreach ($paths as $p) {
if (isset($a[$p])) {
if ($i == count($paths) - 1) {
return TRUE;
}
elseif(is_array($a[$p])) {
$a =& $a[$p];
}
else {
return FALSE;
}
}
else {
return FALSE;
}
$i++;
}
}
// Test
$test = array(
'foo' => array(
'bar' => array(
'baz' => 1
)
),
'bar' => 1
);
echo array_path_exists($test, 'foo/bar/baz');
?>
나는 그것을 내일 시험 할 것이다. 작동하는 경우 내 코드에 신용 할 수 있습니까? –
이 질문에 대한 링크가 도움이 될 것입니다. (당신이 원하는 것을 가정하면 ...) –
은 사소한 변경으로 작동합니다 :이 preg_match_all ('([\ w .-] +)', $ _SERVER [ 'REQUEST_URI'], $ paths); 내가 필요로하는 배열에 맞지 않기 때문에 폭발하는 대신에. 감사합니다. . –
키가 있는지 확인하기 만하면 간단한 if 문을 사용할 수 있습니다.
<?php
if (isset($array1["foo"]["bar"]["baz"]) && isset($array2["foo"]["bar"]["baz"]
)) { // 존재}
내가 확인할 필요가있는 깊이를 알고 있으면 효과가있다. 다른 입력이 있으면 array2 [ "baz"] [ "bar"]에 array1 [ "baz"] [ "bar"]이 존재할 수도 있습니다. –
당신이 그것을 왜 시도하지 않는를? –
경로 [ "foo"] [ "bar"] [ "baz"]를 찾고 있음을 어떻게 알 수 있습니까? 어디에서 정보를 얻습니까? –
URI에서 입력을받습니다. –