التكرار في php

Kakarotto • منذ 4 سنوات

تمام عندي مصفوفة فرضاً سميتها 

$my_array = array('1','2','3','4','5','6');

 

وعندي هاد الكود مثلاً هو عبارة عن أزرار 


[

['text'=>"$button1"], ['text'=>"$button2"]

 ]

و الآن أريد أريد طريقة لجعله يأخذ عناصر المصفوفة ويرتبها ف ب

 $button1 

يأخذ ال 1 و 3 و 5

وال 

$button2

2 و 4 و 6

 

لا أريد إنشاء مصفوفة ثانية!!

كلمات دليلية: foreach

ساعد بالإجابة

"إن في قضاء حوائج الناس لذة لا يَعرفها إلا من جربها، فافعل الخير مهما استصغرته فإنك لا تدري أي حسنة تدخلك الجنة."

الإجابات (2)

Kakarotto • منذ 4 سنوات

بحثت وحاولت وهذا ما توصلت إليه تم حلّ المشكلة والحمد لله إذا كان في اقتراح أو حل أفضل لا تبخلوا علي بالإجابة أترك لكم الكود الذي توصلت إليه هُنا علماً أنّه لبوتات التيليجرام:


function send_m($txt,$keyboard){
    $update = json_decode(file_get_contents('php://input'));
    $message = $update->message;

    $chat_id = $message->chat->id;
    bot('SendMessage',[
        'parse_mode'=>'markdown',
        'chat_id'=>$chat_id,
        'text'=>$txt,
        'reply_markup'=>$keyboard
    ]);

}




if ($text ==  '/start'){

$my_array = array('0','2','4','6','8','10');

$my_array2= array('1','3','5','7','9','11');


    

foreach($my_array as $key => $name1){
$mybutton = array('b2','b3','b4','b5','b6');

foreach($my_array2 as $key => $name2){$name2 = $my_array2[$key];
      $name = $mybutton;


    $name1 = $my_array[$key];


$nbb = $name[$name1];
$nbb2 = $name[$name2];
    $listButton[] = [['text'=>"$nbb"],['text'=>"$nbb2"]];
  
}
    

 $listButton = json_encode(['keyboard'=> $listButton ,'resize_keyboard'=>true]);
    send_m("This Button !!",$listButton);
}
}

 

الآن ستظهر الأزرار من المصفوفة  

$mybutton = array('b2','b3','b4','b5','b6');

 

سيظهر تماماً كما في هذه الصورة :

شكراً لك عزيزي القارئ!❤️

Ali Majrashi • منذ 4 سنوات

على مافهمت من سؤالك تحب ترتب المصفوفه حسب اذا الرقم odd او even تقدر تسوي foreach على المصفوفة وتعيد ترتيبها زي ماتحب مثال 

<?php

$my_array = ['1', '2', '3', '4', '5', '6'];

$final_array = [
    'text1' => [

    ],
    'text2' => [

    ]
];

foreach ($my_array as $k => $v) {
    if ($k % 2 == 0) {
        $final_array['text1'][] = $v;
    } else {
        $final_array['text2'][] = $v;
    }
}

print_r($final_array);

راح يطبع لك مصفوفة مرتبة زي كذا 

[
    'text1' => [
        1, 3, 5
    ],
    'text2' => [
        2, 4, 6
    ]
]

 

Kakarotto: شكراً جزيلاً لك ❤️❤️

لايوجد لديك حساب في عالم البرمجة؟

تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !