php - شرح - تمارين على المصفوفات في الجافا




كيفية دفع كل من القيمة والمفتاح في المصفوفة (11)

ألقِ نظرة على هذا الرمز:

$GET = array();    
$key = 'one=1';
$rule = explode('=', $key);
/* array_push($GET, $rule[0] => $rule[1]); */

أنا أبحث عن شيء من هذا القبيل بحيث:

print_r($GET);
/* output: $GET[one => 1, two => 2, ...] */

هل هناك وظيفة للقيام بذلك؟ (لأن array_push لن يعمل بهذه الطريقة)


array_push ($ GET، $ GET ['one'] = 1)؛

تناسبني


أتساءل لماذا لم يتم نشر أبسط طريقة حتى الآن:

$arr = ['company' => 'Apple', 'product' => 'iPhone'];
$arr += ['version' => 8];

هو نفسه مثل دمج صفيفين مع http://php.net/manual/en/function.array-merge.php



بالضبط ما قاله بيكا ...

بدلاً من ذلك ، ربما يمكنك استخدام array_merge مثل هذا إذا كنت تريد:

array_merge($_GET, array($rule[0] => $rule[1]));

لكنني أفضل طريقة Pekka ربما لأنها أبسط من ذلك بكثير.


غريب بعض الشيء ، ولكن هذا العمل بالنسبة لي

    $array1 = array("Post Slider", "Post Slider Wide", "Post Slider");
    $array2 = array("Tools Sliders", "Tools Sliders", "modules-test");
    $array3 = array();

    $count = count($array1);

    for($x = 0; $x < $count; $x++){
       $array3[$array1[$x].$x] = $array2[$x];
    }

    foreach($array3 as $key => $value){
        $output_key = substr($key, 0, -1);
        $output_value = $value;
        echo $output_key.": ".$output_value."<br>";
    }

كلا ، لا يوجد مكافئ array_push() للصفائف النقابي لأنه لا توجد طريقة لتحديد المفتاح التالي.

عليك أن تستخدم

$arrayname[indexname] = $value;

مثال array_merge () ....

$array1 = array("color" => "red", 2, 4); $array2 = array("a", "b", "color" => "green", "shape" => "trapezoid", 4); $result = array_merge($array1, $array2); print_r($result);

Array ([color] => green، [0] => 2، [1] => 4، [2] => a، [3] => b، [shape] => شبه منحرف، [4] => 4 ،)


مرحباً ، لقد واجهت نفس المشكلة وأجد هذا الحل يجب أن تستخدم صفحتين ثم تجمعهما معًا

 <?php

$fname=array("Peter","Ben","Joe");

$age=array("35","37","43");

$c=array_combine($fname,$age);

print_r($c);

?>

المرجع: w3schools


يمكنك استخدام عامل الإتحاد ( + ) للجمع بين المصفوفات والاحتفاظ بمفاتيح المصفوفة المضافة. فمثلا:

<?php

$arr1 = array('foo' => 'bar');
$arr2 = array('baz' => 'bof');
$arr3 = $arr1 + $arr2;

print_r($arr3);

// prints:
// array(
//   'foo' => 'bar',
//   'baz' => 'bof',
// );

لذا يمكنك أن تفعل $_GET += array('one' => 1); .

هناك المزيد من المعلومات حول استخدام عامل الإتحاد مقابل array_merge في الوثائق على http://php.net/manual/en/function.array-merge.php .


يؤدي دفع قيمة إلى مصفوفة تلقائيًا إلى إنشاء مفتاح رقمي لها.

عند إضافة زوج من قيم القيمة إلى مصفوفة ، يكون لديك بالفعل المفتاح ، ولا تحتاج إلى إنشاء واحد لك. دفع المفتاح إلى مجموعة لا معنى له. يمكنك فقط تعيين قيمة المفتاح المحدد في الصفيف.

// no key
array_push($array, $value);
// same as:
$array[] = $value;

// key already known
$array[$key] = $value;

array_push($arr, ['key1' => $value1, 'key2' => value2]);

هذا يعمل على ما يرام. يخلق المفتاح مع قيمته في الصفيف





arrays