【问题标题】:php- how to push key and value of an array to another arrayphp-如何将数组的键和值推送到另一个数组
【发布时间】:2017-09-25 04:32:05
【问题描述】:

我在文本文件中保存了一个包含一些翻译的数组。 (.txt)

数组结构:

$translate = array(
  "Search. Discover. Book Instantly" => "بگرد مقایسه کن رزرو کن",
  '24/7 Access to top salon' => ' خیلی خوب خیلی عالی در 7 روز هفته',
  'EASY AND SIMPLE'=> 'راحت و ساده',
); 

现在我想向数组添加新字段,但我不知道该怎么做,我需要像 array_push() 这样的东西来添加键和值。

示例:

$new_line = array("Hello World" => "سلام دنیا");

// add to main array
$translate = array(
  "Search. Discover. Book Instantly" => "بگرد مقایسه کن رزرو کن",
  '24/7 Access to top salon' => ' خیلی خوب خیلی عالی در 7 روز هفته',
  'EASY AND SIMPLE'=> 'راحت و ساده',
  "Hello World" => "سلام دنیا"
); 

【问题讨论】:

  • 你可以这样做$translate['Hello World'] = "سلام دنیا";

标签: php arrays


【解决方案1】:

因为$new_line 是一个数组,你可能想要合并它们

array_merge($array1, $array2)

在此处阅读更多信息http://php.net/manual/en/function.array-merge.php

【讨论】:

  • 完美答案。
【解决方案2】:

使用key() 数组函数可以这样完成。

$translate = array(
  "Search. Discover. Book Instantly" => "بگرد مقایسه کن رزرو کن",
  '24/7 Access to top salon' => ' خیلی خوب خیلی عالی در 7 روز هفته',
  'EASY AND SIMPLE'=> 'راحت و ساده',
); 

$new_line = array("Hello World" => "سلام دنیا");

$translate[key($new_line)] = $new_line[key($new_line)];

print_r($translate);

结果

Array
(
    [Search. Discover. Book Instantly] => بگرد مقایسه کن رزرو کن
    [24/7 Access to top salon] =>  خیلی خوب خیلی عالی در 7 روز هفته
    [EASY AND SIMPLE] => راحت و ساده
    [Hello World] => سلام دنیا
)

【讨论】:

    【解决方案3】:

    只需添加一个新条目

    <?php
    
    $new = array("Hello World" => "سلام دنیا");
    
    // add to main array
    $translate = array(
      "Search. Discover. Book Instantly" => "بگرد مقایسه کن رزرو کن",
      '24/7 Access to top salon' => ' خیلی خوب خیلی عالی در 7 روز هفته',
      'EASY AND SIMPLE'=> 'راحت و ساده',
      "Hello World" => "سلام دنیا"
    ); 
    
    /* single entry * /
    $translate['new'] = $new[0];
    unset($new[0]);
    /**/
    
    //several entries
    //array_merge($translate,$new);
    
    //or with iteration
    foreach($new as $k => $v){
        //here you could add some conditions on what to add and what not
        $translate[$k]=$v;
        unset($new[$k]);
    };
    
    print_r( $translate );
    
    ?>
    

    也许你不需要取消设置。也可以看看find the key for associative array entries

    【讨论】:

      【解决方案4】:

      你必须这样做

      $translate['Hello World'] = "سلام دنیا";
      

      关联数组没有等价的array_push(),因为无法确定下一个键。

      【讨论】:

      • 不,您必须指定键和值。 $translate['key'] = "值";
      • 这不是真的。它将使用密钥作为数字并增加它。如果不确定,请不要误导
      • 您假设 $translate[] = 'value' 不起作用。这是不正确的,它相当于array_push(),你说不是。
      • 我提到了 $translate['key'] = "value" @JurijJazdanov
      【解决方案5】:

      这与数组推送的作用相同

      $translate[] = [
          'Hello World' => 'سلام دنیا'
      ];
      

      【讨论】:

      • 您应该注意,这将适用于 php 7。早期版本使用 array() 而不是 []
      • 感谢@JurijJazdanov 你的权利,我假设 PHP 版本的错误。很好,无论如何,RiggsFolly 都会得到最佳答案。
      【解决方案6】:
      $translate = array(
        "Search. Discover. Book Instantly" => "بگرد مقایسه کن رزرو کن",
        '24/7 Access to top salon' => ' خیلی خوب خیلی عالی در 7 روز هفته',
        'EASY AND SIMPLE'=> 'راحت و ساده'
      ); 
      
      $translate["Hello World"] = "سلام دنیا";
      

      或者,如果您有一个带有新值的单独数组

      $new_line = array("Hello World" => "سلام دنیا", "Hello World1" => "سلام دنیا");
      
      $translate = array_merge($translate, $new_line);
      

      【讨论】:

        猜你喜欢
        • 2013-11-09
        • 1970-01-01
        • 2011-01-08
        • 2014-02-04
        • 1970-01-01
        • 2016-06-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多