1

==================================================== =================================

解决方案代码:

$array = array();
$i = 1;
while( $i <= $instance['posts_num'] ) {
    $array['tab'.$i.'_title'] = 'Category Heading';
    $array['tab'.$i.'_thumb'] = 'Insert link here';
    $array['tab'.$i.'_featured'] = 'Insert link here';
    $array['tab'.$i.'_description'] = 'Insert category desciption';
    $array['tab'.$i.'_link'] = 'Insert category link';          
$i += 1;
}   

$instance = wp_parse_args( (array)$instance, array(
    'heading' => 'Featured Area', 
    'title' => '',
    'posts_num' => 1,

    (array) $array
) );

==================================================== =================================

如何使用 while 循环创建数组。

我正在尝试借助简单的 wordpress 插件中的 while 循环创建一个数组。我的代码如下:

    $instance = wp_parse_args( (array)$instance, array(
        'heading' => 'Featured Area', 
        'title' => '',
        'posts_num' => 1,

        $array = array();

        $i = 1;
        while( $i <= $instance['posts_num'] ) {

            $array[] = 'tab'.$i.'_title' => 'Category Heading',
            $array[] = 'tab'.$i.'_thumb' => 'Insert link here',
            $array[] = 'tab'.$i.'_featured' => 'Insert link here',
            $array[] = 'tab'.$i.'_description' => 'Insert category desciption',
            $array[] = 'tab'.$i.'_link' => 'Insert category link',

        $i += 1;
        }

    ) );

我只是想确认我是否做得正确。

我想生成这样的数组:

'tab1_title' => 'Category Heading',
'tab1_thumb' => 'Insert link here',
'tab1_featured' => 'Insert link here',
'tab1_description' => 'Insert category desciption',
'tab1_link' => 'Insert category link',

'tab2_title' => 'Category Heading',
'tab2_thumb' => 'Insert link here',
'tab2_featured' => 'Insert link here',
'tab2_description' => 'Insert category desciption',
'tab2_link' => 'Insert category link',
4

3 回答 3

2

您正在尝试在其中放置一个 while 循环array()。那是行不通的。在调用之前构造数组wp_parse_args,然后将完成的数组传入。

于 2012-12-31T14:59:15.410 回答
1
while( $i <= $instance['posts_num'] ) {


            $array["tab{$i}_title"] = 'Category Heading';
            //...Repeat for others here.


        $i += 1;
        }



array(4) {
  ["tab0_title"]=>
  string(16) "Category Heading"
  ["tab1_title"]=>
  string(16) "Category Heading"
  ["tab2_title"]=>
  string(16) "Category Heading"
  ["tab3_title"]=>
  string(16) "Category Heading"
}
于 2012-12-31T15:06:23.477 回答
0

您的代码的问题是您使用了错误的语法/逻辑。

例子 :

$array['tab'.$i.'_title'] = 'Category Heading';
$array['tab'.$i.'_thumb'] = 'Insert link here';
$array['tab'.$i.'_featured'] = 'Insert link here';
$array['tab'.$i.'_description'] = 'Insert category desciption';
$array['tab'.$i.'_link'] = 'Insert category link';
于 2012-12-31T15:03:02.590 回答