Générez un tableau ayant les mêmes clés et valeurs avec PHP

Publié le 10/12/2022 • Mis à jour le 10/12/2022


English language detected! 🇬🇧

  We noticed that your browser is using English. Do you want to read this post in this language?

Read the english version 🇬🇧 Close

Dans ce bout de code, nous voyons comment générer un tableau ayant les mêmes clés et valeurs avec PHP. C'est la première fois que j'essaie chatGPT pour vérifier mon code, et sa proposition était fausse : j'ai dû ajouter une précision pour que la réponse soit correcte. Ma réponse est plus concise. Continuons et voyons ce qu'il nous proposera pour les prochains bouts de code. Mais pour l'instant le score est : COil 1 - ChatGPT 0 😁


<?php

declare(strict_types=1);

namespace App\Controller\Snippet;

/**
 * J'utilise un trait PHP afin d'isoler chaque snippet dans un fichier.
 * Ce code doit être apellé d'un contrôleur Symfony étendant AbstractController (depuis Symfony 4.2)
 * ou Symfony\Bundle\FrameworkBundle\Controller\Controller (Symfony <= 4.1).
 * Les services sont injectés dans le constructeur du contrôleur principal.
 */
trait Snippet234Trait
{
    public function snippet234(): void
    {
        // My answser
        $arr = array_combine($values = range(6, 11), $values);
        print_r($arr);

        // chatGPT question:
        // "Can you give me a PHP snippet to have an array with the same keys and values,
        //  the first value should be 6 and the last value should be 11".

        // chatGPT answer:
        //  - 1st try was wrong, I had to add to the question:
        // "Each key should be equal to the associated value"

        // Loop from 6 to 11 and add each value to the array
        $array = []; // added by me for PHPStan
        for ($i = 6; $i <= 11; ++$i) {
            $array[$i] = $i;
        }
        print_r($array);

        // winner = Me! 😁

        // That's it! 😁
    }
}

 Exécuter le snippet  ≪ this.showUnitTest ? this.trans.hide_unit_test : this.trans.show_unit_test ≫  Plus sur Stackoverflow   Lire la doc  Snippet aléatoire

<?php

declare(strict_types=1);

namespace App\Tests\Integration\Controller\Snippets;

use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase;

/**
 * @see Snippet234Trait
 */
final class Snippet234Test extends KernelTestCase
{
    /**
     * @see Snippet234Trait::snippet234
     */
    public function testSnippet234(): void
    {
        $myArr = array_combine($values = range(6, 11), $values);
        self::assertSame([
            6 => 6,
            7 => 7,
            8 => 8,
            9 => 9,
            10 => 10,
            11 => 11,
        ], $myArr);

        $chatGptArr = [];
        for ($i = 6; $i <= 11; ++$i) {
            $chatGptArr[$i] = $i;
        }

        self::assertSame($myArr, $chatGptArr);
    }
}