Reputation: 1884
I've an array that contains data taken by splitting a string.
Mike,20,male,Ann,28,female,chuck,45,male
$people = explode(',', $result);
how can I assign these data in the array 3 by 3 into 3 different variables using foreach?
Mike 20 male
and then
Ann 28 female
then
chuck 45 male
Upvotes: 4
Views: 87
Reputation: 64657
foreach(array_chunk(explode(',', $result), 3) as $row) {
list($name, $age, $gender) = $row;
}
actually, even better:
foreach(array_chunk(explode(',', $result), 3) as list($name, $age, $gender)) {
}
Upvotes: 5
Reputation: 28592
$data = array("mike","20","male","Milaf","21","male","Ava","22","female");
$names = array();
for($i=0 ; $i<9 ; $i+=3){
$names[] = $data[$i];
}
foreach($names as $name){
echo $name.'<br>';
}
$ages = array();
for($i=1 ; $i<10 ; $i+=3){
$ages[] = $data[$i];
}
foreach($ages as $age){
echo $age.'<br>';
}
$genders = array();
for($i=2 ; $i<10 ; $i+=3){
$genders[] = $data[$i];
}
foreach($genders as $gender){
echo $gender.'<br>';
}
$fullName = array();
for($i = 0 ; $i<3 ; $i++){
$fullName[] =$names[$i].$ages[$i].$genders[$i];
echo $fullName[$i]."<br>";
}
Upvotes: 0
Reputation: 1603
this is one option
$result = 'Mike,20,male,Ann,28,female,chuck,45,male';
$people = explode( ',', $result );
$final_result = array();
$i = 0;
$n = 0;
foreach ( $people as $keys => $values ) {
$final_result[$n][] = $values;
$i++;
if ( $i%3 === 0 ) {
$n++;
}
}
Upvotes: 2