1

独自の配列に分割された複数のオプションを持つ値を持つ配列があります。ループで入力したい値の 1 つ。;これは forloop で可能ですか?私はそれが壊れると思います。この要求を達成するための最良の方法は何ですか?

  array(
    'name' => __('Ensemble List', 'januas'),
    'type' => 'checkbox',
    'options' => array(
     for ($x=0; $x<=10; $x++){
     array('name' => __($x , 'title'), 'value' => $x)
      }
    )
  ),

私が投稿したもの以外の完全な配列は次のとおりです。

$meta_boxes[] = array(
    'id' => 'januas_speakers',
    'title' => __('Ensemble', 'januas'),
    'pages' => array('ja-event'),
    'context' => 'normal',
    'priority' => 'high',
    'show_names' => true,
    'fields' => array(
      array(
        'name' => __('Visible', 'januas'),
        'desc' => __('Select Yes to show the box in the event page, No to hide it.', 'januas'),
        'id' => 'januas_speakers_visible',
        'type' => 'select',
        'options' => array(
          array('name' => __('Yes', 'januas'), 'value' => 'y'),
          array('name' => __('No', 'januas'), 'value' => 'n'),
        )
      ),
      array(
        'name' => __('Position', 'januas'),
        'desc' => __('Select the preferred position for the box.', 'januas'),
        'id' => 'januas_speakers_position',
        'type' => 'select',
        'options' => array(
          array('name' => __('Main', 'januas'), 'value' => 'main'),
          array('name' => __('Sidebar', 'januas'), 'value' => 'sidebar'),
        )
      ),
      array(
        'name' => __('Order', 'januas'),
        'desc' => __('Insert the box order (ex: 1).', 'januas'),
        'id' => 'januas_speakers_order',
        'std' => 1,
        'type' => 'text_small'
      ),
      array(
        'name' => __('Show Title', 'januas'),
        'desc' => __('Select Yes to show the box title, No to hide it.', 'januas'),
        'id' => 'januas_speakers_showtitle',
        'type' => 'select',
        'options' => array(
          array('name' => __('Yes', 'januas'), 'value' => 'y'),
          array('name' => __('No', 'januas'), 'value' => 'n'),
        )
      ),
      array(
        'name' => __('Show in Top menu', 'januas'),
        'desc' => __('Select Yes to show the menu item in the event page top menu, No to hide it.', 'januas'),
        'id' => 'januas_speakers_showinmenu',
        'type' => 'select',
        'options' => array(
          array('name' => __('Yes', 'januas'), 'value' => 'y'),
          array('name' => __('No', 'januas'), 'value' => 'n'),
        )
      ),
       array(
        'name' => '',
        'desc' => '',
        'id' => 'januas_images_gallery',
        'type' => 'image_gallery'
      ),
      array(
        'name' => __('Ensemble List', 'januas'),
        'desc' => 'Select the ensemble memebers for this event.',
        'id' => 'januas_speakers_completelist',
        'type' => 'checkbox',
        'options' => array_map(function ($x) {
            return array(
        'name' => __($x, 'januas'),
        'value' => $x,
      );
    }, range(0,11))
  ),
      array(
        'name' => __('Display order', 'januas'),
        'desc' => '',
        'id' => 'januas_speakers_speakersorder',
        'type' => 'event_speakers'
      ),
      array(
        'name' => '',
        'desc' => '',
        'id' => 'januas_speakers_backtotop',
        'type' => 'backtotop'
      )
    ),
  );
4

3 に答える 3

3

使用できますarray_map

array(
  'name' => __('Ensemble List', 'januas'),
  'type' => 'checkbox',
  'options' => array_map(function ($x) {
    return array(
      'name' => __($x, 'title'),
      'value' => $x,
    );
  }, range(0,11))
),
于 2013-10-17T01:46:11.630 に答える
0

使用する必要がありますarray_push

$a = array(
    'name' => __('Ensemble List', 'januas'),
    'type' => 'checkbox',
    'options' => array()
  );
  for ($x=0; $x<=10; $x++){
     array_push( $a['options'], array('name' => __($x , 'title'), 'value' => $x) );
  }
 print_r($a);
于 2013-10-17T01:49:55.207 に答える