I have a multi-dimensional array like this and I would like to create a new array out of it and add in default values. The keys of the first array are fixed (00,01,02,03) but the keys in the secondary are dynamic values
Array
(
[00] => Array
(
[KEY 1] => 100
[KEY 2] => 50
[KEY 3] => 30
)
[01] => Array
(
[KEY 1] => 40
[KEY 2] => 100
[KEY 4] => 200
)
[02] => Array
(
[KEY 1] => 30
[KEY 2] => 40
[KEY 3] => 30
)
[03] => Array
(
[KEY 5] => 30
)
)
So my question is How can I turn the above array into something like this ?
Array
(
[00] => Array
(
[KEY 1] => 10
[KEY 2] => 50
[KEY 3] => 30
[KEY 4] => 0
[KEY 5] => 0
)
[01] => Array
(
[KEY 1] => 40
[KEY 2] => 100
[KEY 3] => 0
[KEY 4] => 200
[KEY 5] => 0
)
[02] => Array
(
[KEY 1] => 30
[KEY 2] => 40
[KEY 3] => 30
[KEY 4] => 0
[KEY 5] => 0
)
[03] => Array
(
[KEY 1] => 0
[KEY 2] => 0
[KEY 3] => 0
[KEY 4] => 0
[KEY 5] => 30
)
)
I have been struggling all day and my head is getting tired. Can some one help ?
//HERE is the code i am using
contents of the CSV file
"00","KEY 1",100
"00","KEY 2",50
"00","KEY 3",30
"01","KEY 1",40
"01","KEY 2",100
"01","KEY 4",200
"02","KEY 1",30
"02","KEY 2",40
"02","KEY 3",30
"03","KEY 5",30
Here is the code
$csvFile='export (82).csv';
$file_handle = fopen($csvFile, 'r');
while (!feof($file_handle)) {
$line_of_text[] = fgetcsv($file_handle, 1024);
}
foreach ($arr as $key => $val) {
foreach ($line_of_text as $v) {
if (!isset($val[$v]))
$arr[$key][$v] = 0;
}
}
echo"<pre>";
print_r($arr);
echo"</pre>";
// CODE FOR CREATING THE Multi-dimensional array
$fp = fopen($csvFile, 'r');
$master = array();
while( $line = fgetcsv( $fp ) ) {
if( !isset( $master[$line[0]] ) )
$master[$line[0]] = array();
if( !isset( $master[$line[0]][$line[1]] ) )
$master[$line[0]][$line[1]] = 0;
$n = filter_var($line[2], FILTER_SANITIZE_NUMBER_INT);
$master[$line[0]][$line[1]] += $n;
}
KEY 1
,KEY 2
... strings or are they integers? – Oswald Jan 12 at 18:18print_r($csvFile)
in question – Alireza Fallah 웃 Jan 12 at 19:07$arr
? I dont see you did – Alireza Fallah 웃 Jan 12 at 19:07