首页 > 解决方案 > 我想要一个特定格式的数组来自 PHP 中的数组

问题描述

我想将现有数组修改为特定格式,请参阅下面的数组我拥有什么以及我想要什么

我有数组:

Array
(
    [0] => Array
        (
            [block_id] => 1
            [title] => Test1
            [identifier] => test1
            [content] => some test data
            [creation_time] => 2019-09-03 09:47:35
            [update_time] => 2019-09-03 09:47:35
            [is_active] => 1
        )

    [1] => Array
        (
            [block_id] => 2
            [title] => test2
            [identifier] => twst2
            [content] => dfdsffsdfsdfsfsdf
            [creation_time] => 2019-09-03 09:48:03
            [update_time] => 2019-09-03 09:48:03
            [is_active] => 1
        )

)

我希望这个数组为:

$options = [
        ['value' => 'test1', 'label' => __('Test1')],
        ['value' => 'test2', 'label' => __('Test2')],
        ['value' => 'test3', 'label' => __('Test3')],
        ['value' => 'test4', 'label' => __('Test4')],
        ['value' => 'test5', 'label' => __('Test5')],
        ['value' => 'test6', 'label' => __('Test6')]
        ];

标签: phparrays

解决方案


试试这个解决方案。

$data = Array ( Array
            (
                'block_id' => 1,
                'title' => 'Test1'
            ), Array
            (
                'block_id' => 2,
                'title' => 'test2'
            )

            );

    foreach($data as $k => $val){

        $options[$k]['value'] = $val['title'];
        $options[$k]['label'] = '__("'.ucfirst($val['title']).'")';

    }
    echo "<pre>";
    print_r( $options);

预期结果是

    Array
(
    [0] => Array
        (
            [value] => Test1
            [label] => __("Test1")
        )

    [1] => Array
        (
            [value] => test2
            [label] => __("Test2")
        )

)

推荐阅读