for循环中的关联数组

时间:2017-12-20 12:59:32

标签: php associative-array

我编写了一个代码,我希望在关联数组中添加一些数据。我想使用array_push,但我想我应该向社区请求这种做法。我这样做是正确的吗?我想要实现的是,for循环数据的每个索引都应该添加到数组中,但是每次我想的时候都会创建一个新的实例。选项是数组,id_option和name应该在数组的每个索引中,就像查找数据时一样<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script> <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css"> <input type="text" id="date">

$options[0]['id_option']

我也尝试过这种方式,但这不起作用,下面的语法错误(仅用于理论目的:

for ($mn = 0; $mn < sizeof($pages); $mn++) {
    $options = array(
        array(
            'id_option' => $pages[$mn]['meta_title'],
            'name' => $pages_links[$mn]['link'],
        )
    );
}

5 个答案:

答案 0 :(得分:2)

$options = array();//init the array options

for ($mn = 0; $mn < sizeof($pages); $mn++) {
    $options[] = array(
        'id_option' => $pages[$mn]['meta_title'],
        'name' => $pages_links[$mn]['link'],
    );
}

print_r($options);

注意$ option变量之后的哈利特 - 这将告诉PHP为数组添加一个值$ options

答案 1 :(得分:1)

您需要添加它,而不是覆盖它,因此请使用$options[] = x

好的做法是在循环上面定义空数组,所以在代码的其他部分你至少要有一个数组可以使用(空或不),而不是未定义的var。

// define $options as an array
$options = [];

// add array with data to $options array
for ($mn = 0; $mn < sizeof($pages); $mn++) {
    $options[] = [
        'id_option' => $pages[$mn]['meta_title'],
        'name' => $pages_links[$mn]['link'],
     ];
}

我还删除了第二个嵌套数组。

答案 2 :(得分:0)

你想要这个:

>>> re.findall(r'(\d)(\1+)', n)
[('4', '4'), ('5', '55'), ('2', '2')]
>>> [''.join(i) for i in re.findall(r'(\d)(\1+)', n)]
['44', '555', '22']

答案 3 :(得分:0)

你的第二个代码不起作用。但是你可以稍微更改你的第一个代码并使其正常工作。

$options = []; // defines the array
for ($mn = 0; $mn < sizeof($pages); $mn++) {
    $options[] = array(
            'id_option' => $pages[$mn]['meta_title'],
            'name' => $pages_links[$mn]['link'],
    );
}
  • $ options = [] 定义数组
  • 然后for循环遍历您的数据。
  • 每次循环运行时,PHP都会创建带有array()函数的新关联数组,并将其作为新元素添加到$ options数组中。
  • 最后,您将获得一个多维数组。 ($选项)

感谢。

答案 4 :(得分:0)

您上面所做的每次都会覆盖options数组。

不是100%确定你要做什么,但尝试这样的事情:

$options = array();

for ($mn = 0; $mn < sizeof($pages); $mn++) {
   $key = $pages[$mn]['meta_title'];
   $value = $pages_links[$mn]['link'];
   $options[$key] = $value;
}

var_dump($options);

由于我不知道您的原始数据是什么样的,因此测试是否有点难以测试。

希望它有所帮助。