Samir Boukheche نشر 6 يوليو 2021 أرسل تقرير مشاركة نشر 6 يوليو 2021 مثلا لدي مصفوفة تحمل اسماء البائعين التالية : ('محمد','رضا','أبراهيم','محمد','محمد','رضا','محمد')superm=array$ اريد ان اعرف ان اضهر اسم اكثر شخص ظهر في المصفوفة في هاته الحالة هو محمد والاسم الدي ظهر اقل في المصفوفة php 2 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
1 سمير عبود نشر 6 يوليو 2021 أرسل تقرير مشاركة نشر 6 يوليو 2021 يُمكنك إستخدام الدالة: array_count_values التي تُعيد عدد المرات التي يظهر فيها كل عنصر في المصفوفة على سبيل المثال: <?php $superm= array('محمد','رضا','أبراهيم','محمد','محمد','رضا','محمد'); $values = array_count_values($superm); print_r($values); سيُعطي النتيجة: Array ( [محمد] => 4 [رضا] => 2 [أبراهيم] => 1 ) ثم إستخدام الدالة arsort لترتيب المصفوفة التي تحصلنا عليها بشكل عكسي حسب عدد التكرارات. <?php $superm= array('محمد','رضا','أبراهيم','محمد','محمد','رضا','محمد'); $values = array_count_values($superm); arsort($values); print_r($values); سنحصل على النتيجة: Array ( [محمد] => 4 [رضا] => 2 [أبراهيم] => 1 ) تحصلنا على نفس النتيجة لأن محمد يأتي أول الترتيب في المصفوفة المعطاة و رضا يأتي ثانياً لو جعلنا على سبيل المثال ابراهيم أولا لحصلنا على نتيجتين مختلفتين. ثم للحصول على المفاتيح فقط أي محمد و رضا و ... نستخدم الدالة array_keys التي سترجع مصفوفة تضم الأسماء حيث أول عنصر هو الأكثر تكرار و آخر عنصر هو الأقل تكرار: <?php $superm= array('محمد','رضا','أبراهيم','محمد','محمد','رضا','محمد'); $values = array_count_values($superm); arsort($values); print_r($values); /* Output: Array ( [0] => محمد [1] => رضا [2] => أبراهيم ) */ اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
1 Adnane Kadri نشر 6 يوليو 2021 أرسل تقرير مشاركة نشر 6 يوليو 2021 سنحتاج تحضير مصفوفة تحمل عدد مرات ظهور كل عنصر , ثم سيكون علينا تحديد الفهرس بالقيمة الأكبر أو الأصغر . مثال عملي : يمكننا الإستعانة بالدالة array_count_values لحساب عدد المرات التي ظهر فيها كل عنصر سلسلة نصية أو رقم من المصفوفة . $arr = array('محمد','رضا','أبراهيم','محمد','محمد','رضا','محمد'); $ordered = array_count_values($arr); ثم سيكون علينا قراءة العنصر بالقيمة الأكبر , يمكن ذلك عن طريق الدالة max , أو الأصغر عن طريق الدالة min , التان تقومان بجلب العنصر ذي القيمة الأكبر و الأصغر على التوالي في مصفوفة أعداد . $ordered = array_count_values($arr); $max = max($ordered); $min = min($ordered); و كخطوة أخيرة سنحتاج البحث عن المفتاح المرافق للقيمة الأكبر أو الأصغر المعادة في مصفوفة التي يتم إعادتها من الخطوة 1 . $maxVal = array_search($max, $ordered); $minVal = array_search($min, $ordered); فيكون الكود كاملا : $arr = array('محمد','رضا','أبراهيم','محمد','محمد','رضا','محمد'); $ordered = array_count_values($arr); $maxVal = array_search(max($ordered), $ordered); $minVal = array_search(min($ordered), $ordered); يمكنك الإطلاع على توثيق كل دالة مما تم إستعماله : الدالة array_count_values في PHP . الدالة array_search في PHP. الدالة max في PHP. الدالة min في PHP . اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
1 محمد أيت لعرايك نشر 6 يوليو 2021 أرسل تقرير مشاركة نشر 6 يوليو 2021 لفهم كيفية حساب العناصر المتكررة في مصفوفة هناك دالة ()array_count_values و هي دالة مضمنة في PHP تُستخدم لحساب جميع القيم الموجودة داخل المصفوفة. بعبارة أخرى ، يمكننا القول أن الدالة ()array_count_values تُستخدم لحساب تكرار جميع عناصر المصفوفة. وتستخدم كالتالي : array array_count_values( $array ) المعلمات: تقبل هذه الدالة مصفوفة واحد كمعامل. هذه المعلمة هي المصفوفة التي نحتاج إلى حساب عدد القيم الموجودة فيها. إرجاع القيمة: تقوم هذه الدالة بإرجاع مصفوفة ارتباطية بأزواج مفتاح-قيمة حيث تكون المفاتيح هي عناصر المصفوفة التي تم تمريرها كمعامل والقيم هي تكرار هذه العناصر في المصفوفة. مثال: <?php $output = array_count_values(["Geeks", "hsoub", "Geeks", "Geeks", "Welcome", "hsoub"]); /* النتيجة : Array ( [Geeks] => 3 [hsoub] => 2 [Welcome] => 1 ) */ $output = array_count_values([1, 1, 2, 3 , 1 , 2 , 4, 5]); /* النتيجة : Array ( [1] => 3 [2] => 2 [3] => 1 [4] => 1 [5] => 1 ) */ ثم بعد ذلك نقوم بإستخدام الدالة array_search على المصفوفة التي حصلنا عليها في المثال السابق لإيجاد الإسم الأكثر تكرارا <?php $array = array_count_values(["Geeks", "hsoub", "Geeks", "Geeks", "Welcome", "hsoub"]); echo array_search(max($array), $array); /** النتيجة: Geeks */ $array = array_count_values([1, 1, 2, 3 , 1 , 2 , 4, 5]); echo array_search(max($array), $array); /** النتيجة: 1 */ اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
0 Samir Boukheche نشر 6 يوليو 2021 الكاتب أرسل تقرير مشاركة نشر 6 يوليو 2021 بتاريخ 12 دقائق مضت قال محمد أيت لعرايك: لفهم كيفية حساب العناصر المتكررة في مصفوفة هناك دالة ()array_count_values و هي دالة مضمنة في PHP تُستخدم لحساب جميع القيم الموجودة داخل المصفوفة. بعبارة أخرى ، يمكننا القول أن الدالة ()array_count_values تُستخدم لحساب تكرار جميع عناصر المصفوفة. وتستخدم كالتالي : array array_count_values( $array ) المعلمات: تقبل هذه الدالة مصفوفة واحد كمعامل. هذه المعلمة هي المصفوفة التي نحتاج إلى حساب عدد القيم الموجودة فيها. إرجاع القيمة: تقوم هذه الدالة بإرجاع مصفوفة ارتباطية بأزواج مفتاح-قيمة حيث تكون المفاتيح هي عناصر المصفوفة التي تم تمريرها كمعامل والقيم هي تكرار هذه العناصر في المصفوفة. مثال: <?php $output = array_count_values(["Geeks", "hsoub", "Geeks", "Geeks", "Welcome", "hsoub"]); /* النتيجة : Array ( [Geeks] => 3 [hsoub] => 2 [Welcome] => 1 ) */ $output = array_count_values([1, 1, 2, 3 , 1 , 2 , 4, 5]); /* النتيجة : Array ( [1] => 3 [2] => 2 [3] => 1 [4] => 1 [5] => 1 ) */ لاكن لو اردنا جلب قيم من قاعدة البيانات نستعمل الدالة while while($row = mysqli_fetch_array مثلا الاسماء التالية في جدول البيانات محمد محمد رضا محمد محمد ابراهيم رضا محمد كيف نقوم باستدعاء من قاعدة البيانات اكثر اسم متكرر واقل اسم متكرر بتاريخ 27 دقائق مضت قال Adnane Kadri: سنحتاج تحضير مصفوفة تحمل عدد مرات ظهور كل عنصر , ثم سيكون علينا تحديد الفهرس بالقيمة الأكبر أو الأصغر . مثال عملي : يمكننا الإستعانة بالدالة array_count_values لحساب عدد المرات التي ظهر فيها كل عنصر سلسلة نصية أو رقم من المصفوفة . $arr = array('محمد','رضا','أبراهيم','محمد','محمد','رضا','محمد'); $ordered = array_count_values($arr); ثم سيكون علينا قراءة العنصر بالقيمة الأكبر , يمكن ذلك عن طريق الدالة max , أو الأصغر عن طريق الدالة min , التان تقومان بجلب العنصر ذي القيمة الأكبر و الأصغر على التوالي في مصفوفة أعداد . $ordered = array_count_values($arr); $max = max($ordered); $min = min($ordered); و كخطوة أخيرة سنحتاج البحث عن المفتاح المرافق للقيمة الأكبر أو الأصغر المعادة في مصفوفة التي يتم إعادتها من الخطوة 1 . $maxVal = array_search($max, $ordered); $minVal = array_search($min, $ordered); فيكون الكود كاملا : $arr = array('محمد','رضا','أبراهيم','محمد','محمد','رضا','محمد'); $ordered = array_count_values($arr); $maxVal = array_search(max($ordered), $ordered); $minVal = array_search(min($ordered), $ordered); يمكنك الإطلاع على توثيق كل دالة مما تم إستعماله : الدالة array_count_values في PHP . الدالة array_search في PHP. الدالة max في PHP. الدالة min في PHP . لاكن لو اردنا جلب قيم من قاعدة البيانات نستعمل الدالة while while($row = mysqli_fetch_array مثلا الاسماء التالية في جدول البيانات محمد محمد رضا محمد محمد ابراهيم رضا محمد كيف نقوم باستدعاء من قاعدة البيانات اكثر اسم متكرر واقل اسم متكرر بتاريخ منذ ساعة مضت قال عبود سمير: يُمكنك إستخدام الدالة: array_count_values التي تُعيد عدد المرات التي يظهر فيها كل عنصر في المصفوفة على سبيل المثال: <?php $superm= array('محمد','رضا','أبراهيم','محمد','محمد','رضا','محمد'); $values = array_count_values($superm); print_r($values); سيُعطي النتيجة: Array ( [محمد] => 4 [رضا] => 2 [أبراهيم] => 1 ) ثم إستخدام الدالة arsort لترتيب المصفوفة التي تحصلنا عليها بشكل عكسي حسب عدد التكرارات. <?php $superm= array('محمد','رضا','أبراهيم','محمد','محمد','رضا','محمد'); $values = array_count_values($superm); arsort($values); print_r($values); سنحصل على النتيجة: Array ( [محمد] => 4 [رضا] => 2 [أبراهيم] => 1 ) تحصلنا على نفس النتيجة لأن محمد يأتي أول الترتيب في المصفوفة المعطاة و رضا يأتي ثانياً لو جعلنا على سبيل المثال ابراهيم أولا لحصلنا على نتيجتين مختلفتين. ثم للحصول على المفاتيح فقط أي محمد و رضا و ... نستخدم الدالة array_keys التي سترجع مصفوفة تضم الأسماء حيث أول عنصر هو الأكثر تكرار و آخر عنصر هو الأقل تكرار: <?php $superm= array('محمد','رضا','أبراهيم','محمد','محمد','رضا','محمد'); $values = array_count_values($superm); arsort($values); print_r($values); /* Output: Array ( [0] => محمد [1] => رضا [2] => أبراهيم ) */ لاكن لو اردنا جلب قيم من قاعدة البيانات نستعمل الدالة while while($row = mysqli_fetch_array مثلا الاسماء التالية في جدول البيانات محمد محمد رضا محمد محمد ابراهيم رضا محمد كيف نقوم باستدعاء من قاعدة البيانات اكثر اسم متكرر واقل اسم متكرر اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
0 سمير عبود نشر 6 يوليو 2021 أرسل تقرير مشاركة نشر 6 يوليو 2021 بتاريخ منذ ساعة مضت قال Reda Boukheche: لاكن لو اردنا جلب قيم من قاعدة البيانات نستعمل الدالة while while($row = mysqli_fetch_array مثلا الاسماء التالية في جدول البيانات محمد محمد رضا محمد محمد ابراهيم رضا محمد كيف نقوم باستدعاء من قاعدة البيانات اكثر اسم متكرر واقل اسم متكرر ارجو أن تُحدد في سؤالك ماذا تريد بالضبط حتى نستطيع تقديم المساعدة بشكل دقيق إذا كنت تريد الإستعلام عن أكثر اسم مكرر و ليكن إسم الحقل هو name و الجدول الذي تريد الإستعلام منه هو users يُمكنك إستخدام الإستعلام التالي لجلب أكثر إسم مكرر: <?php $query = "SELECT name, COUNT(name) as c from users GROUP BY name ORDER BY COUNT(name) DESC LIMIT 1"; $result = mysqli_query($db, $query); if ($result) { $row = mysqli_fetch_assoc($result); print_r($row); } أما إن كنت تريد الأقل تكراراً فبدل الترتيب التنازلي نستخدم الترتيب التصاعدي : <?php $query = "SELECT name, COUNT(name) as c from users GROUP BY name ORDER BY COUNT(name) ASC LIMIT 1"; // أو $query = "SELECT name, COUNT(name) as c from users GROUP BY name ORDER BY COUNT(name) LIMIT 1"; اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
0 محمد أيت لعرايك نشر 7 يوليو 2021 أرسل تقرير مشاركة نشر 7 يوليو 2021 كما ذكرت لك في الإجابة الأولى اولا يجب ان تأتي بجميع الاسماء على شكل مصفوفة من قاعدة الببانات. <?php $query = "SELECT name from users"; $result = mysqli_query($db, $query); if ($result) { $names = mysqli_fetch_assoc($result); // $names قم بتفيذ الأوامر التي ذكرت في الجواب الأول هنا بإستعمال المصفوفة } ستحصل على مصفوفة بها جمبع الأسماء, بعد ذلك قم بتطبيق الحل الذي اقترحت عليك في الجواب السابق لمعرفة الاسم الاكثر تكرارا عن طريق الدالة array_count_values, اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
0 Samir Boukheche نشر 7 يوليو 2021 الكاتب أرسل تقرير مشاركة نشر 7 يوليو 2021 بتاريخ 11 ساعات قال عبود سمير: ارجو أن تُحدد في سؤالك ماذا تريد بالضبط حتى نستطيع تقديم المساعدة بشكل دقيق إذا كنت تريد الإستعلام عن أكثر اسم مكرر و ليكن إسم الحقل هو name و الجدول الذي تريد الإستعلام منه هو users يُمكنك إستخدام الإستعلام التالي لجلب أكثر إسم مكرر: <?php $query = "SELECT name, COUNT(name) as c from users GROUP BY name ORDER BY COUNT(name) DESC LIMIT 1"; $result = mysqli_query($db, $query); if ($result) { $row = mysqli_fetch_assoc($result); print_r($row); } أما إن كنت تريد الأقل تكراراً فبدل الترتيب التنازلي نستخدم الترتيب التصاعدي : <?php $query = "SELECT name, COUNT(name) as c from users GROUP BY name ORDER BY COUNT(name) ASC LIMIT 1"; // أو $query = "SELECT name, COUNT(name) as c from users GROUP BY name ORDER BY COUNT(name) LIMIT 1"; Array ( [vendeur] => Rida gsm [c] => 2 ) 1 لاكن هنا تم طبع المصفوفة اريد الاسم rida gsm فقط اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
0 Samir Boukheche نشر 7 يوليو 2021 الكاتب أرسل تقرير مشاركة نشر 7 يوليو 2021 بتاريخ On 7/7/2021 at 04:27 قال محمد أيت لعرايك: كما ذكرت لك في الإجابة الأولى اولا يجب ان تأتي بجميع الاسماء على شكل مصفوفة من قاعدة الببانات. <?php $query = "SELECT name from users"; $result = mysqli_query($db, $query); if ($result) { $names = mysqli_fetch_assoc($result); // $names قم بتفيذ الأوامر التي ذكرت في الجواب الأول هنا بإستعمال المصفوفة } ستحصل على مصفوفة بها جمبع الأسماء, بعد ذلك قم بتطبيق الحل الذي اقترحت عليك في الجواب السابق لمعرفة الاسم الاكثر تكرارا عن طريق الدالة array_count_values, لاكن هل نستخدم if ام while ربما الثانية افضل خي التي تعمل دوران على كل الصفوف لاكن يظهر لي اول اسم مكتوب في المصفوفة وليس الاكثر تكرار مثال يظهرلي casa phone مع انو gsm rida هو الاكثر تكرار <div class="col-lg-3 col-xs-6"> <div class="small-box bg-purple"> <div class="inner"> <?php error_reporting(0); $count=0; $sql="select vendeur from cards where finshed = '1' "; $result=$conn->query($sql); while($row = mysqli_fetch_assoc($result)) { $sq=array_count_values($row); ?> <h3><?php echo array_search(max($sq), $sq) ?></h3> <?php } ?> <p>اسم أكثر بائع نشيط</p> </div> <div class="icon"> <i class="fa fa-home"></i> </div> <a href="shop" class="small-box-footer">عرض <i class="fa fa-arrow-circle-right"></i></a> </div> </div> <div class="col-lg-3 col-xs-6"> <div class="small-box bg-purple"> <div class="inner"> <?php error_reporting(0); $count=0; $sql="select vendeur from cards where finshed = '1' "; $result=$conn->query($sql); while($row = mysqli_fetch_assoc($result)) { $sq=array_count_values($row); ?> <h3><?php echo array_search(max($sq), $sq) ?></h3> <?php } ?> <p>اسم أكثر بائع نشيط</p> </div> <div class="icon"> <i class="fa fa-home"></i> </div> <a href="shop" class="small-box-footer">عرض <i class="fa fa-arrow-circle-right"></i></a> </div> </div> اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
0 Samir Boukheche نشر 7 يوليو 2021 الكاتب أرسل تقرير مشاركة نشر 7 يوليو 2021 كيف استدعي جميع الباعة واجعلهم يتخزنون في مصفوفة واحدة بدل كل واحد في مصفوفة لوحده لاعرف اي بائع دكر اسمه اكثر علما استعمل while اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
0 سمير عبود نشر 7 يوليو 2021 أرسل تقرير مشاركة نشر 7 يوليو 2021 بتاريخ 5 ساعات قال Reda Boukheche: Array ( [vendeur] => Rida gsm [c] => 2 ) 1 لاكن هنا تم طبع المصفوفة اريد الاسم rida gsm فقط بعد الحصول على المصفوفة يمكنك الوصول للحقل الذي تريده بداخل الأقواس مثلاً: <?php $query = "SELECT name, COUNT(name) as c from users GROUP BY name ORDER BY COUNT(name) desc LIMIT 1"; $result = mysqli_query($db, $query); if ($result) { $row = mysqli_fetch_assoc($result); echo $row['name']; } اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
0 محمد أيت لعرايك نشر 7 يوليو 2021 أرسل تقرير مشاركة نشر 7 يوليو 2021 إذا كنت تريد كتابة إستعلام واحد و الحصول على الإسم الأكثر تكرارا يمكنك إستخدام الإستعلام التالي: SELECT `name` FROM `users` GROUP BY `name` ORDER BY COUNT(*) DESC LIMIT 1; اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
السؤال
Samir Boukheche
مثلا لدي مصفوفة تحمل اسماء البائعين التالية :
('محمد','رضا','أبراهيم','محمد','محمد','رضا','محمد')superm=array$
اريد ان اعرف ان اضهر اسم اكثر شخص ظهر في المصفوفة في هاته الحالة هو محمد
والاسم الدي ظهر اقل في المصفوفة
php
رابط هذا التعليق
شارك على الشبكات الإجتماعية
11 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.