【问题标题】:How to correctly create an array in PHP如何在 PHP 中正确创建数组
【发布时间】:2014-12-22 20:46:33
【问题描述】:

我想让一个数组看起来像这样。 请查看并比较代码,以便您直接明白我的意思。

        $args = array(
            'numberposts' => -1,
            'post_type' => 'post',
            'cat' => array(
                1, 2, 3
            ),
            'meta_query' => array(
                'relation' => 'OR',
                /*
                array(
                    'key' => 'year',
                    'value' => '2014',
                    'compare' => 'LIKE'
                ),
                array(
                    'key' => 'year',
                    'value' => '2013',
                    'compare' => 'LIKE'
                )
                */
                $getarray
            ),
            'suppress_filters' => false
        );

但是当我这样做时,我仍然得到编号输出:

                array_push(
                    $getarray,
                    array(
                        'key' => 'organization_type',
                        'value' => $val,
                        'compare' => 'LIKE'
                    )
                );

Var_dump:

array(1) { [0]=> array(3) { ["key"]=> string(17) "organization_type" ["value"]=> string(10) "foundation" ["compare"]=> string(4) "LIKE" } }

如何使一个数组包含如下数组:

                array(
                    'key' => 'year',
                    'value' => '2014',
                    'compare' => 'LIKE'
                ),
                array(
                    'key' => 'year',
                    'value' => '2013',
                    'compare' => 'LIKE'
                )

【问题讨论】:

  • 如果你不懂数组,就不要从多维数组入手。
  • 这个问题很不清楚。您似乎在问如何做您已经知道该怎么做的事情。你说"How can I make an array to contain arrays like:",然后给出所需的语法。所以我不明白。我唯一能想到的是你还没有掌握二维数组,所以被多维数组弄糊涂了。好吧,唯一的解决办法就是先掌握二维数组,并了解使用数字索引和关联索引之间的区别。
  • 即便如此,我还是会发布一个答案,我猜这就是你的意思。
  • 数组中的值必须有对应的键。如果你愿意,你可以忽略它们,但它们必须存在,这是 PHP 中数组的基本组成部分。

标签: php arrays


【解决方案1】:

经过一番猜测,我想你是在问如何输入:

            array(
                'key' => 'year',
                'value' => '2014',
                'compare' => 'LIKE'
            ),
            array(
                'key' => 'year',
                'value' => '2013',
                'compare' => 'LIKE'
            )

使用关联索引(即单词而不是数字)进入另一个数组。它看起来像这样:

array(
      'array1' => array(
                'key' => 'year',
                'value' => '2014',
                'compare' => 'LIKE'
            ),
      'array2' =>  array(
                'key' => 'year',
                'value' => '2013',
                'compare' => 'LIKE'
            )
);

换句话说,您必须指定要用作索引的单词。你也可以这样做:

$arr = array();
$arr['array1'] = array(
                'key' => 'year',
                'value' => '2014',
                'compare' => 'LIKE'
            );
$arr['array2'] = array(
                'key' => 'year',
                'value' => '2013',
                'compare' => 'LIKE'
            );

【讨论】:

  • 哇,有一个严重的格式错误,但现在都修复了。
  • 没错!怎么办?
  • 啊抱歉,我不想有一个带键的数组。它应该只包含没有键的值。 :(
  • @Maxi,那么它就不是一个数组了。就像我最初在问题的 cmets 中所说的那样,即使是基本的二维数组,您也会感到困惑。数组有键:它们就是这样。如果他们不这样做,他们将一文不值。
【解决方案2】:

这是您要搜索的内容吗?

$array = array();
$array['key'] = "year";
$array['value'] = "2014";
$array['compare'] = "LIKE";
foreach($array as $i){
   echo "$i";
}

【讨论】:

  • 并非如此。我只想在一个包含多个没有索引的数组的 Foreach 中创建一个数组!
  • 所以你可以在 foreach($Array as $i) 的中间创建一个 foreach($i as $j),如果你有另一个数组中的数组,这可能会起作用
  • code foreach($Array as $i){ foreach($i as $j){ echo "Array $i => $j"; } }
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-08
  • 2023-04-05
  • 1970-01-01
  • 2021-03-26
  • 2013-10-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多