note 97544 deleted from function.array-push by danbrown
| From: | danbrown@php.net | Date: | Mon, 26 Apr 2010 14:37:40 +0000 |
| Subject: | note 97544 deleted from function.array-push by danbrown | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-168663@lists.php.net to get a copy of this message | ||
Note Submitter: moandsimon at btinternet dot com
----
If you want to convert a multidimensional array of the form:
$rowsoriginal[] = array('field_wrkvolmin_value' => 216,
'field_wrkvolmax_value' => 1000);
$rowsoriginal[] = array('field_wrkvolmin_value' => 27,
'field_wrkvolmax_value' => 216);
Using print_r this will look like:
Array ( [0] => Array ( [field_wrkvolmin_value] => 216 [field_wrkvolmax_value] => 1000 ) [1]
=> Array ( [field_wrkvolmin_value] => 27 [field_wrkvolmax_value] => 216 ) )
when $rowsoriginal contain a fixed but unknown amount of values which you want to process in a
automatic way without knowing the keys etc, into a multidimensional array of the form:
$rowstemp = array('field_wrkvolmin_value' => array(216, 27),
'field_wrkvolmax_value' => array(1000, 216));
Using print_r this will look like:
Array ( [field_wrkvolmin_value] => Array ( [0] => 216 [1] => 27 ) [field_wrkvolmax_value]
=> Array ( [0] => 1000 [1] => 216 ) )
you can use the following looping and conditional structure, using array_push() and
array_key_exists():
$rowstemp = array();
foreach ($rowsoriginal as $row) {
foreach ($row as $key => $value) {
if (array_key_exists($key, $rowstemp)) {
$rowstemp[$key][] = $value;
}
else {
$valuestemp = array($value);
$rowstemp[$key] = $valuestemp;
}
}
}