note 107817 added to function.array
| From: | qeremy | Date: | Wed, 07 Mar 2012 14:50:03 +0000 |
| Subject: | note 107817 added to function.array | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-186525@lists.php.net to get a copy of this message | ||
Some tricky functions;
<?php
function is_array_assoc($arr) {
if (is_array($arr)) {
foreach ($arr as $k => $v) {
if (is_string($k) || (is_int($k) && $k < 0)) {
return 1;
}
}
return 0;
}
return -1;
}
function is_array_multi($arr) {
return is_array($arr)
? (count($arr) != count($arr, COUNT_RECURSIVE) ? 1 : 0)
: -1;
}
$arr[] = array("foo", "bar", 1.09);
$arr[] = array("red", "yellow", 1 => "foo");
$arr[] = array("red", "yellow", -1 => "foo");
$arr[] = array("x" => array("red", "yellow"), "y" =>
array("one", "two"));
$arr[] = array();
$arr[] = "s";
foreach ($arr as $a) {
echo is_array_assoc($a) ."\n";
}
echo "\n";
foreach ($arr as $a) {
echo is_array_multi($a) ."\n";
}
?>
0
0
1
1
0
-1
0
0
0
1
0
-1
<?php
function array_count($arr) {
$r = 0;
foreach ($arr as $k => $v) {
if (is_array($v)) {
$r++;
}
}
return $r;
}
function array_count_all($arr, $r = 0) {
foreach ($arr as $k => $v) {
if (is_array($v)) {
$r = array_count_all($v, $r);
$r++;
}
}
return $r;
}
$a = array("foo", "bar", 1.09, array(1,2,3), array("a" =>
"aaa"));
echo array_count($a); // 2
$a = array(
"foo", "bar", 1.09,
"x" => array(1,2,3),
array("a" => "aaa", "b" => array(), "c" =>
array(""), "d" => array("")),
"e" => array(""),
"z" => array(""),
"q" => array("", array()),
"w" => array("lorem", 1 => "impsum", 18, "dolor",
array("last as 11th array"))
);
echo array_count_all($a); // 11
?>
----
Server IP: 69.147.83.197
Probable Submitter: 194.27.149.90
----
Manual Page -- http://www.php.net/manual/en/function.array.php
Edit -- https://master.php.net/note/edit/107817
Del: integrated -- https://master.php.net/note/delete/107817/integrated
Del: useless -- https://master.php.net/note/delete/107817/useless
Del: bad code -- https://master.php.net/note/delete/107817/bad+code
Del: spam -- https://master.php.net/note/delete/107817/spam
Del: non-english -- https://master.php.net/note/delete/107817/non-english
Del: in docs -- https://master.php.net/note/delete/107817/in+docs
Del: other reasons-- https://master.php.net/note/delete/107817
Reject -- https://master.php.net/note/reject/107817
Search -- https://master.php.net/manage/user-notes.php