다차원 배열()의 값을 세는 방법이 있습니까?PHP 배열 값 계산
$families = array
(
"Test"=>array
(
"test1",
"test2",
"test3"
)
);
그래서 예를 들면, 나는 ... 배열 "테스트"내 ('TEST1', 'TEST2', 'TEST3')을 3 개 값을 계산 싶어?
다차원 배열()의 값을 세는 방법이 있습니까?PHP 배열 값 계산
$families = array
(
"Test"=>array
(
"test1",
"test2",
"test3"
)
);
그래서 예를 들면, 나는 ... 배열 "테스트"내 ('TEST1', 'TEST2', 'TEST3')을 3 개 값을 계산 싶어?
count 메서드가 있어야합니다. 실제 문제가 무엇인지에 따라 모든 항목을 합산하기 위해 반복적 인 루프를 작성해야 할 수도 있습니다.
정적 배열 :
echo 'Test has ' . count($families['test']) . ' family members';
당신이 당신의 배열이 될 것입니다 얼마나 오래 모르는 경우이 나를에 의해 작성된 사용자 정의 기능, 그냥 통과
foreach($families as $familyName => $familyMembers)
{
echo $familyName . ' has got ' . count($familyMembers) . ' family members.';
}
function countArrayValues($ar, $count_arrays = false) {
$cnt = 0;
foreach ($ar as $key => $val) {
if (is_array($ar[$key])) {
if ($count_arrays)
$cnt++;
$cnt += countArrayValues($ar);
}
else
$cnt++;
}
return $cnt;
}
입니다 배열과 당신은 가치의 전체 카운트를 얻을 것이다. 이 메소드는 두 번째 매개 변수를 false로 전달하거나 아무 것도 전달하지 않으면 배열 요소를 계산하지 않습니다. 당신이 그들을 또한 계산하고 싶다면 tru를 전달하십시오.
$count = countArrayValues($your_array);
저는 (무제한) MD 배열의 요소를 계산하는 다소 다른 방식을 생각해 냈습니다.
<?php
$array = array("ab", "cd", array("ef", "gh", array("ij")), "kl");
$i = 0;
array_walk_recursive($array, function() { global $i; return ++$i; });
echo $i;
?>
아마도 가장 경제적 인 방법은 아니지만 작동하는 것 같습니다. 익명 함수 내에서 함수를 확장하려는 경우와 같이 값이 비어 있지 않은 경우 계산 된 합계에 요소를 추가 할 수 있습니다. 유사한 내용의 예가 여기에 표시 될 수 있습니다.
<?php
$array = array("ab", "cd", array("ef", "gh", array("ij")), "kl");
$i = 0;
array_walk_recursive($array, function($value, $key) { global $i; if ($value == 'gh') ++$i; });
echo $i;
?>
count (array [0]) 그 작업을 수행 했습니까? – Drewdin
연관 배열이기 때문에 추측하지 않으려 고합니다. 그건 내 원래의 대답과 당황하게 잘못되었습니다! –