-4

I want to extract values from a nested array to a comma-separated string like below. for example, let $data_array is an array and it's when it var-dump($data_array) the output looks like

array(1) {
     [0]=> array(5)
        {
            [0]=> array(2) 
            {
                ["title"]=> string(7) "Title 1" ["vote_number"]=> string(1) "5" 
            }
            [1]=> array(2)
            {
                ["title"]=> string(7) "Title 2" ["vote_number"]=> string(2) "10" 
            } 
            [3]=> array(2) 
            {
                ["title"]=> string(7) "Title 3" ["vote_number"]=> string(2) "20"
            } [4]=> array(2) 
            {
                ["title"]=> string(7) "Title 4" ["vote_number"]=> string(2) "30" 
            } [5]=> array(2) 
            {
                ["title"]=> string(7) "Title 5" ["vote_number"]=> string(2) "40" 
            } 
        } 
    }

I want to extract values from the above Nested array. Like

$title_data = [Title 1,Title 2,Title 3,Title 4,Title 5];

$vote_data  = [5,10,20,30,40];
Firefog
  • 3,094
  • 7
  • 48
  • 86

2 Answers2

2

array_column() should do the trick.

$title_data = array_column($data_array[0], 'title');
$vote_data = array_column($data_array[0], 'vote_number');

then you can merge the array together with implode()

$title_data = implode(',', $title_data);
$vote_data = implode(',', $vote_data);
Anurat Chapanond
  • 2,837
  • 3
  • 18
  • 31
1

Try something like this:

$array = 
    [
        [
            ["title"=> "Title 1", "vote_number"=>"5"],
            ["title"=> "Title 2", "vote_number"=>"15"],
            ["title"=> "Title 3", "vote_number"=>"10"],
            ["title"=> "Title 4", "vote_number"=>"7"],
            ["title"=> "Title 5", "vote_number"=>"3"],
            ["title"=> "Title 6", "vote_number"=>"9"],
        ]
    ];
$titles = [];
$votes = [];

foreach($array[0] as $arr) {
    $titles[] = $arr["title"];
    $votes[] = $arr["vote_number"];
}
print_r($titles);
print_r($votes);

And output is like:

Array
(
    [0] => Title 1
    [1] => Title 2
    [2] => Title 3
    [3] => Title 4
    [4] => Title 5
    [5] => Title 6
)
Array
(
    [0] => 5
    [1] => 15
    [2] => 10
    [3] => 7
    [4] => 3
    [5] => 9
)
JureW
  • 641
  • 1
  • 6
  • 15