按字符串名称构建数组或按字符串值创建多个数组



我想通过打破主数组来创建一个数组或多个数组,我的数组就像,

    Array
(
    [0] => string1   
    [1] => 1
    [2] => 2
    [3] => 3
    [4] => 66
    [5] => 34
    [6] => string1
    [7] => aww
    [8] => brr
    [9] => string3
    [10] => xas
)   

所以基本上通过值'string1'我想做一个新数组或第一个数组它只有这三个值(1,2,3)和string2string3相同,所以每个数组都有它的值(三个)。请帮我建造这个。

提前谢谢你。

结果应该是:

string1 array:  
<pre>Array
(
    [1] => 1
    [2] => 2
    [3] => 3
    [4] => 66
    [5] => 34
)
string2 array:  
<pre>Array
(
    [1] => aww
    [2] => brr
)
string3 array:  
<pre>Array
(
    [1] => xas
)   

我想这会让你得到你想要的。

它假设旧数组中的第一个条目将是一个关键字!

$old = array('string1',1,2,3,66,34,'string2','aww','brr','string3','xas');
$new = array();
$keywords = array('string1', 'string2', 'string3');
$last_keyword = '';
foreach ($old as $o) {
    if ( in_array($o, $keywords) ) {
        $last_keyword = $o;        
    } else {
        $new[$last_keyword][] = $o;
    }
}
print_r($new);

它创建了一个像这样的新数组

Array
(
    [string1] => Array
        (
            [0] => 1
            [1] => 2
            [2] => 3
            [3] => 66
            [4] => 34
        )
    [string2] => Array
        (
            [0] => aww
            [1] => brr
        )
    [string3] => Array
        (
            [0] => xas
        )
)

然而,我仍然认为最好回到原始数组创建的地方,并寻求修改该过程,而不是为它编写修复

相关内容

  • 没有找到相关文章

最新更新