简体   繁体   中英

How to create inner array in array using php

I have loop of array. my loop format is-

background1.png - `abc1.png`
background1.png - `abc2.png`
background1.png - `abc3.png`
background2.png - `abc4.png`
background2.png - `abc5.png`
background2.png - `abc6.png`

Output should be -

$fruits = array(
'background1.png' =>
       array('abc1.png','abc2.png', 'abc3.png'),
'background2.png' =>
       array('abc4.png','abc5.png', 'abc6.png')
)
<?php
$arr = array(
'background1.png - abc1.png','background1.png - abc2.png',
'background1.png - abc3.png','background2.png - abc4.png',
'background2.png - abc5.png','background2.png - abc6.png');

foreach ($arr as $elem) {
    $temp = explode('-', $elem);
    $key = trim($temp[0]);
    $fruits[$key][] = trim($temp[1]); 
}

echo '<pre>';print_r($fruits);echo '</pre>';

Outout is:

(
    [background1.png] => Array
        (
            [0] => abc1.png
            [1] => abc2.png
            [2] => abc3.png
        )

    [background2.png] => Array
        (
            [0] => abc4.png
            [1] => abc5.png
            [2] => abc6.png
        )

)

Explanation:

Loop through your input array.

Consider background variables as keys.

And other images as values and construct array.

PS: Use trim() to avoid leading and trailing spaces.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM