كيف يمكن استخدام array_rand مع مصفوفة متعددة اﻷبعاد ؟


التعليقات

هل هذا ماتقصد ؟

$a = array(array("a","b","c","d","e","f"), array("g","h","i","j"), array("k","l","m","n"));

echo array_rand($a[rand(0,count($a)-1)],1);

نعم نسيت وضع النصوص بين " في الموضوع ، لكن جربت الحل الذي طرحته

echo array_rand($a[rand(0,count($a)-1)],1);

وما زالت الناتج رقما !

جرب هذا اذًا

$a = array(array("a","b","c","d","e","f"), array("g","h","i","j"), array("k","l","m","n"));
$ac = rand(0,count($a)-1);
echo $a[$ac][rand(0,count($a[$ac])-1)];

طالما يوجد في اللغة دالة تولد المفتاح العشوائي، لمَ تستخدم rand وcount دالتان، وتكبّر حجم شيفرتك؟

$a = [ ['a','b','c','d','e','f'], ['g','h','i','j'], ['k','l','m','n'] ];
$a2 = $a[array_rand($a)];
echo  $a2[array_rand($a2)];

ملاحظة ' أسرع من " لأنها لا تحتاج إلى عملية تحليل إضافية، إن كنت لن تضع متغيرات في النص استخدم '.

حل بسيط ويعمل بشكل رائع ، لدي استفسار آخر إذا لم تمانع :

التطبيق الذي أعمل عليه يقوم على فكرة استخراج بيانات معينة من قاعدة بيانات مسجلة في السيرفر ، قمت باستخدام اﻷوامر التالية بهدف تحويل الصفوف Rows من القاعدة إلى عناصر داخل مصفوفة جديدة ومن ثم أقوم بتطبيق دالة array_rand لاستخراج القيمة العشوائية من المصفوفة الجديدة .

العناصر كلها حروف عربية بالتشكيل .... دعك من الترميز اﻵن ...

هذا هو الكود المستخدم لتحويل الصفوف إلى مصفوفة :

require ('configuration.php');

$SQLCommand = "SELECT * FROM Quran"; $result = mysqli_query($db , $SQLCommand); $array = array(); $id = 0; while($row = mysqli_fetch_assoc($result)){ $array[$id] = $row; $id++;}

وهذا هو الناتج باستخدام Print_r

أنا فقط مبتدئ للغاية فقد بدأت تعلم PHP منذ شهر تقريبا وهذا أول تطبيق عملي أريد إنشاءه ، صفحة ويب بها زر ، تضغط عليه فتظهر آية من القرآن الكريم بشكل عشوائي ...

بحثت عن قاعدة بيانات تضم آيات القرآن بشكل منفصل حتى توصلت لملف SQL لكن مكتوب بأكواد قديمة لم تناسب MariaDB 10 التي أستخدمها ، فقمت بإنشاء تطبيق صغير واستخدمت str_replace وحول جميع اﻷكواد حتى أنشأت القاعدة ...

واﻵن تلك المشكلة أحاول حلها من البارحة ولم أفلح :(

على الهامش : هل هناك مشاريع أو تطبيقات صغيرة باستخدام PHP لكي أحاول تقليدها ؟

أعتذر عن اﻹطالة

إن كنت فهمتُ ما تقصده، تريد إستعلام ناتج واحد عشوائي؟ إذن ما تفعله سيئ جدًا، إستعلام كل القرآن ثم إخراج الناتج العشوائي بـPHP، حل سيء وبطيء، وغير عملي بالمرة، إذا كنت تريد ناتج واحد عشوائي، استخدم شيئًا مثل:

SELECT * FROM Quran ORDER BY RAND() LIMIT 1

على الهامش : هل هناك مشاريع أو تطبيقات صغيرة باستخدام PHP لكي أحاول تقليدها ؟

GitHub فيه الكثير ...

آه شكرا لك .

المثير للسخرية أنني أنهيت للتو دورة صغيرة في لغة SQL وتحتوي على تلك الدالة ولم أفكر أبدًا باستخدامها بدلا من إخراج كافة البيانات !!

لابد من وجود طريقة لمعاقبة اﻷشخاص الذين يفكرون بتلك الطرق الغبية ...

أشكرك صديقي على وقتك :)

لا فرق

هناك الكثير من الطرق لكتابة الكود لست ملزمًا بطريقة محدده

ولا فرق في عدد الاسطر فالتطبيق سوف ينفذ ويقوم بالمطلوب منه وهذا المهم

نعم ' اسرع في التحليل

في كلتا الحالتين سينفذ المطلوب منه، لكن ببساطة إذا كانت هنالك دالة تقوم بالأمر بطريقة أسهل وأفضل للقرأءة لمَ لا تستخدمها؟ لا أعرف عن السرعة لكن غالبًا استدعاء دالتين أبطأ من دالة، إذا كانت الخوارزمية نفسها، والموضوع أصلًا يتحدث عن هذه الدالة.

ترى الموضوع تافه حقًا، لا يستحق النقاش، ولا أعرف حقًا لم كتبتُ هذين السطرين، طاب يومك أخي :)

طاب يومك ايضًا

نعم اﻵن أصبحت تعمل ، شكرا لك .


PHP

مجتمع مخصص للغة الـ PHP

4.71 ألف متابع