I’m unsure as to how I would add columns to information I have within my CSV file. The three columns that I would like to have are Mobile Number, Carrier Name and Validity Status.
index.php:
JavaScript
x
<?php
if (($open = fopen("Book1.csv", "r")) !== FALSE)
{
while (($data = fgetcsv($open, 1000, ",")) !== FALSE)
{
$array[] = $data;
}
fclose($open);
}
echo "<pre>";
//To display array data
var_dump($array);
echo "</pre>";
My information currently displays as shown in the following code:
JavaScript
array(6) { [0]=> array(3) {
[0]=> string(11) "0744395****"
[1]=> string(9) " Vodafone"
[2]=> string(6) " Valid"
}
[1]=> array(3) {
[0]=> string(11) "0744395****"
[1]=> string(3) " EE"
[2]=> string(6) " Valid"
}
[2]=> array(3) {
[0]=> string(11) "0744395****"
[1]=> string(6) " Three"
[2]=> string(6) " Valid"
}
[3]=> array(3) {
[0]=> string(11) "0744395****"
[1]=> string(9) " Vodafone"
[2]=> string(6) " Valid"
}
[4]=> array(3) {
[0]=> string(11) "0744395****"
[1]=> string(13) " Tesco Mobile"
[2]=> string(10) " Not Valid"
}
[5]=> array(3) {
[0]=> string(11) "0744395****"
[1]=> string(3) " EE"
[2]=> string(6) " Valid"
}
}
I would like for the information to be columned as shown below (online example I found):
JavaScript
[REPTILE] => Array(
[0] => stdClass Object(
[animal] => crocodile
[type] => REPTILE
[number] => 4
)
)
[BIRD] => Array(
[0] => stdClass Object(
[animal] => duck
[type] => BIRD
[number] => 2
)
)
[MAMMAL] => Array (
[0] => stdClass Object(
[animal] => koala
[type] => MAMMAL
[number] => 4
)
[1] => stdClass Object(
[animal] => lion
[type] => MAMMAL
[number] => 5
)
)
[FISH] => Array
(
[0] => stdClass Object(
[animal] => áéíóú
[type] => FISH
[number] => 3
)
)
This is how my information is stored within the CSV file:
JavaScript
0744395****, Vodafone, Valid
0744395****, EE, Valid
0744395****, Three, Valid
0744395****, Vodafone, Valid
0744395****, Tesco Mobile, Not Valid
0744395****, EE, Valid
Advertisement
Answer
JavaScript
$newArray = [];
if (($fh = fopen("Book1.csv", "r")) !== FALSE) {
while (($data = fgetcsv($fh, 1000, ",")) !== FALSE) {
$o = new stdClass;
$o->MobileNumber = trim($data[0]);
$o->Carrier = trim($data[1]);
$o->ValidityStatus = trim($data[2]);
$newArray[$o->Carrier][] = $o;
}
}
Should produce an array of Carriers, each with an array of objects with phone number and statuses inside