note 107817 added to function.array

From: 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

« previous php.notes (#186525) next »