Home > Article > Backend Development > Count the number of elements in a two-dimensional array_PHP tutorial
Record the solution to a problem, which involves the usage of several functions, as a review.
Let me explain the problem first. The field content in the data table stores a comma-delimited string with a maximum of 20 numbers and a maximum number of 40. For example, a sequence of numbers similar to 3, 24, 33, 40. In fact, it is a field that stores multiple voting results. Now we need to count the number of each number, that is, how many people voted for each voting item, and sort them.
This is my thinking.
1. First read data from the content field of the database and merge them into a string.
<?php while($myrow = $connector -> fetch_array($result)) { //$r[] = explode(",", $myrow["content"]); $str .= $myrow["content"].','; } $arr_str = substr($str, 0, -1); ?>
Since there is a comma after the last number, the string needs to be intercepted.
2. Split the string into an array by commas.
$r = explode(",", $arr_str);
3. Use array_count_values() to count the number of elements in a one-dimensional array
Since array_count_values() seems to be unable to directly count the elements of a two-dimensional array, the above two steps are performed to obtain a one-dimensional array.
The array_count_values() function is used to count the number of occurrences of all values in the array. Returns an array, the key name of its element is the value of the original array, and the key value is the number of times the value appears in the original array.
$rs = array_count_values($r);
4. Sorting
Sort is very simple, but to keep the key values, you can use the built-in asort() function.
asort($rs); echo '<pre class="brush:php;toolbar:false">'; print_r($rs); echo '';
Record several functions used.