doubingling4706 2017-07-16 10:17
浏览 90
已采纳

基于var的PHP填充数组

I feel like I'm struggling to find the answer here because I think I'm missing some key piece of info.

What I am trying to do is run a loop over some data, and then do something different with it based on one of it's values.

So the print_r of the data I am looping over gives me this. This is all good, it has only the data I need, nothing excess.

Array
(
[foodid] => 1
[menuid] => 1789798798
[creatorid] => 1
[foodtype] => hotdog
[frequency] => weekly
[cost] => 20
[chargedate] => 2017-07-14 11:05:18
)

And I want to do SOMETHING to it, depending on the value in frequency. The things I want to do are all stored in a set of identical arrays.

weekly, 2weekly, monthly, daily. eg

$_weekly = array(
"cost" => "2",
"order" => "5",
"years" => "0",
);

$_2weekly = array(
"cost" => "4",
"order" => "10",
"years" => "0",
);

Similar arrays for weekly 2weekly etc.

It seems simple to just use a var like $workingvar in the loop. So when I get there I can just use $workingvar = $_weekly, or $workingvar = $_2weekly.

So, how can I set the contents of $workingvar to be one of those existing arrays? Then I can use the same loop/function on each row in the data, and change the values it pulls in, depending on what that frequency value contains.

Edit added second array example.

  • 写回答

2条回答 默认 最新

  • douwei3172 2017-07-16 10:23
    关注

    So you need variable variable, in your case it is:

    $arr['frequency'] = 'weekly';
    $_weekly = [11,22,33];
    
    $workingvar = ${'_' . $arr['frequency']};
    var_dump($workingvar);
    

    But having array with same keys is a more preferred solution (simply because it's more readable and shorter):

    $arr['frequency'] = 'weekly';
    $arrs = [
        'weekly' => [11,22,33],
    ];
    var_dump($arrs[$arr['frequency']]);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化
  • ¥15 Mirare PLUS 进行密钥认证?(详解)
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥20 想用ollama做一个自己的AI数据库
  • ¥15 关于qualoth编辑及缝合服装领子的问题解决方案探寻
  • ¥15 请问怎么才能复现这样的图呀