比较两个关联数组的值并替换它们

Comparing two associative arrays values and replacing them

我在处理 2 个关联数组时遇到问题。我有两个数组,如果数组 1 的 id = 数组 2 的 id = id,则数组 1 的 active_lession 和 active_learning_lession 应该替换为数组的 active_lession 和 active_learning_lession分别2个。

数组 1 =>

   array:3 [
  0 => array:10 [
    "id" => 3   
    "status" => "1"
    "active_lession" => 0
    "active_learning_lession" => 0   
    "learninglessions" => array:2 [
      0 => array:12 [
        "id" => 2
        "language_id" => 1
        "category_id" => 3
        "sentence" => "अगर आपको अपना स्कूल का नाम पुछा जाए तो क्या कहेंगे"
        "english_sentence" => "I am student of …… School."

      ]
      1 => array:12 [
        "id" => 27
        "language_id" => 1
        "category_id" => 3
        "sentence" => "यह मेरा दोस्त/मित्र है"
        "english_sentence" => "He is my friend."

      ]
    ]
  ]
  1 => array:10 [
    "id" => 4
    "name" => "Module 2"
    "image" => "public/icon/downloadxxx.jpeg"
    "status" => "1"
    "active_lession" => 10
    "active_learning_lession" => 0   
    "learninglessions" => array:2 [
      0 => array:12 [
        "id" => 1
        "language_id" => 1
        "category_id" => 4
        "sentence" => "अपना परिचय कैसे देंगे –"
        "english_sentence" => "I am..."

      ]   
    ]
  ]
  2 => array:10 [
    "id" => 5
    "status" => "1"
    "active_lession" => 0
    "active_learning_lession" => 0
    "learninglessions" => array:4 [
      0 => array:12 [
        "id" => 29
        "language_id" => 1
        "category_id" => 5
        "sentence" => "यह एक बाग है ।"
        "english_sentence" => "This is a Park."
      ]
      1 => array:12 [
        "id" => 34
        "language_id" => 1
        "category_id" => 5
        "sentence" => "कैसा चल रहा है ?"
        "english_sentence" => "How are things ?"  
    ]
  ]
]

数组 2=>

array:3 [
  0 => array:3 [
    "id" => 3
    "active_learning_lession" => 25
    "active_lession" => 20
  ]
  1 => array:3 [
    "id" => 4
    "active_learning_lession" => 20
    "active_lession" => 15
  ]  
]

因此预期的数组将是

   array:3 [
  0 => array:10 [
    "id" => 3   
    "status" => "1"
    "active_lession" => 20
    "active_learning_lession" => 25   
    "learninglessions" => array:2 [
      0 => array:12 [
        "id" => 2
        "language_id" => 1
        "category_id" => 3
        "sentence" => "अगर आपको अपना स्कूल का नाम पुछा जाए तो क्या कहेंगे"
        "english_sentence" => "I am student of …… School."

      ]
      1 => array:12 [
        "id" => 27
        "language_id" => 1
        "category_id" => 3
        "sentence" => "यह मेरा दोस्त/मित्र है"
        "english_sentence" => "He is my friend."

      ]
    ]
  ]
  1 => array:10 [
    "id" => 4
    "name" => "Module 2"
    "image" => "public/icon/downloadxxx.jpeg"
    "status" => "1"
    "active_lession" => 15
    "active_learning_lession" => 20  
    "learninglessions" => array:2 [
      0 => array:12 [
        "id" => 1
        "language_id" => 1
        "category_id" => 4
        "sentence" => "अपना परिचय कैसे देंगे –"
        "english_sentence" => "I am..."

      ]   
    ]
  ]
  2 => array:10 [
    "id" => 5
    "status" => "1"
    "active_lession" => 0
    "active_learning_lession" => 0
    "learninglessions" => array:4 [
      0 => array:12 [
        "id" => 29
        "language_id" => 1
        "category_id" => 5
        "sentence" => "यह एक बाग है ।"
        "english_sentence" => "This is a Park."
      ]
      1 => array:12 [
        "id" => 34
        "language_id" => 1
        "category_id" => 5
        "sentence" => "कैसा चल रहा है ?"
        "english_sentence" => "How are things ?"  
    ]
  ]
]

试试这个代码..

$res = [];
foreach($x as $key => $xx)
{
  foreach($y as $k => $yy)
  {
    if($xx['id'] == $yy['id'])
    {
        $res[$key] = $xx;

        $res[$key]['active_lession'] = $yy['active_lession'];
        $res[$key]['active_learning_lession'] = $yy['active_learning_lession'];
    }
    else
    {
        if(!array_key_exists($key,$res))
        {
            $res[$key] = $xx;
        }
    }


  }
}
print_r($res);  

foreach($x as $key => $value)
{
foreach($y as $yy)
{
    if($value['id'] == $yy['id'])
    {
        $x[$key]['active_learning_lession'] = $yy['active_learning_lession'];
        $x[$key]['active_lession'] = $yy['active_lession'];


    }
}

} 
print_r($x);

输出将是

Array
(
[0] => Array
    (
        [id] => 3
        [status] => 1
        [active_lession] => 20
        [active_learning_lession] => 25
        [learninglessions] => Array
            (
                [0] => Array
                    (
                        [id] => 2
                        [language_id] => 1
                        [category_id] => 3
                        [sentence] => jhdbfhbs
                        [english_sentence] => I am student of …… School.
                    )

                [1] => Array
                    (
                        [id] => 27
                        [language_id] => 1
                        [category_id] => 3
                        [sentence] => dbshbfjhf
                        [english_sentence] => He is my friend.
                    )

            )

    )

[1] => Array
    (
        [id] => 4
        [name] => Module 2
        [image] => public/icon/downloadxxx.jpeg
        [status] => 1
        [active_lession] => 15
        [active_learning_lession] => 20
        [learninglessions] => Array
            (
                [0] => Array
                    (
                        [id] => 1
                        [language_id] => 1
                        [category_id] => 4
                        [sentence] => jhbdsfhjferu
                        [english_sentence] => I am...
                    )

            )

    )

[2] => Array
    (
        [id] => 5
        [status] => 1
        [active_lession] => 0
        [active_learning_lession] => 0
        [learninglessions] => Array
            (
                [0] => Array
                    (
                        [id] => 29
                        [language_id] => 1
                        [category_id] => 5
                        [sentence] => jbfhgbdu
                        [english_sentence] => This is a Park.
                    )

                [1] => Array
                    (
                        [id] => 34
                        [language_id] => 1
                        [category_id] => 5
                        [sentence] => jhsbdhjfbuyefr
                        [english_sentence] => How are things ?
                    )

            )

    )

)