PHP 如何在我的变量中包含未知数量的数组?

问题描述 投票:0回答:1

我想重新创建下面的代码,但是是在PHP for循环中。这是我需要复制的原始代码。

$values[ 'value' ] = array(
'form' => '1647',
  'row_ids' => array( 0, 1, 2 ),
  0 => array( 0 => '', $first_field => 'Row 1 value', $second_field => '1' ),
  1 => array( 0 => '', $first_field => 'Row 2 value', $second_field => '2' ),
  2 => array( 0 => '', $first_field => 'Row 3 value', $second_field => '3' ),
);
return $values;
}

我需要创建一个动态的版本,我想下面的代码可以工作,但似乎这是在创建一个我不需要的父数组,我被下一步该怎么做卡住了。

$i = 0;
$count = "0";
$row_values = array();

for ($x = 0; $x < $row_num; $x++) {
  if($x != 0) {
    $i++;
    $count .= ", " . $x;
  }
  $row_values[$i][0] = '';
  $row_values[$i][$first_field] = 'Row 1 value';
  $row_values[$i][$second_field] = "$i";
}

$values[ 'value' ] = array(
  'form' => '1647',
  'row_ids' => array( $count ),
  $row_values
);

所以澄清一下,我的代码是在创建。

Array ( [0] => Array ( [0] => [22] => Row 1 value [23] => 0 ) [1] => Array ( [0] => [22] => Row 1 value [23] => 1 ) );

而我需要

[0]=> array(3) { [0]=> string(0) "" [22]=> string(11) "Row 1 value" [23]=> string(1) "1" }

[1]=> array(3) { [0]=> string(0) "" [22]=> string(11) "Row 2 value" [23]=> string(1) "2" }

这需要适用于任何行数,例如:2,根据例子,或5或x。

php arrays
1个回答
1
投票

只要定义好你的数组,然后根据增量向数组添加即可。

$values['value'] = array( 'form' => '1647' );

for($x = 0; $x < $row_num; $x++) {
    $values['value']['row_ids'][$x] = $x;
    $values['value'][$x] = array( 0 => '',
                                  $first_field => 'Row ' . ($x + 1) . ' value',
                                  $second_field => ($x + 1) );
}

0
投票

我不清楚你想达到什么目的,但有一个简化的版本。

<?php
$arr = [];
$arr_n = 3;

for ($i = 1; $i < $arr_n + 1; ++$i) {
    $arr['value'][] = ["Row $i value" => $i];
}

print_r($arr);

预览

Array
(
    [value] => Array
        (
            [0] => Array
                (
                    [Row 1 value] => 1
                )

            [1] => Array
                (
                    [Row 2 value] => 2
                )

            [2] => Array
                (
                    [Row 3 value] => 3
                )

        )

)
© www.soinside.com 2019 - 2024. All rights reserved.