【问题标题】:getting value of array from certain index in php从php中的某个索引获取数组的值
【发布时间】:2017-11-08 05:46:18
【问题描述】:

我想获取给定索引的数组类型的值。数组的值为

$status = [1,2];

我使用这些代码来获取值:

$task_state = $status[1];

但它实际上认为 $status 是一个字符串并返回

'['

我知道这实际上很简单,但我似乎无法找到问题的答案。谢谢

【问题讨论】:

  • 您的数组给出了实际结果。但是如果您遇到问题,请尝试像这样将 $status 声明为数组$status = array();
  • 您使用的是什么 PHP 版本?仅 PHP >= 5.4 支持使用[] 定义数组
  • 7.0.10 先生

标签: php arrays


【解决方案1】:

如果$status 定义为字符串,您可以使用eval 函数返回它的php 值,如下所示:

$status = '[1,2]';
$status_array = eval('return ' . $status . ';');
$task_state = $status_array[0];

注意 eval() 语言结构非常危险,因为它允许执行任意 PHP 代码。因此不鼓励使用它。如果您已仔细验证除了使用此构造之外别无选择,请特别注意不要将任何用户提供的数据传入其中,而无需事先正确验证。

【讨论】:

    【解决方案2】:

    我尝试复制你的脚本,然后在这里得到什么

    $status = [1,2];
    $task_state = $status[1];
    var_dump($status);
    exit;
    

    结果是:

    array(2) { [0]=> int(1) 1=> int(2) }

    你能给我显示'['的代码行吗? 可能是你的php版本有问题。见refrence.

    【讨论】:

    • 当我回显 $task_state 先生时是这样
    • 尝试改用array(1, 2) [1, 2]
    【解决方案3】:

    也许你是说你的数组的值:

    $status  = array(1,2);
    

    所以要从数组中获取一个值:

    echo $tatus[0] . "and " . $tatus[1];
    

    输出:

    1 和 2

    【讨论】:

    • 实际上我试图使用 $status = $_POST['state']; 从我的 android 应用程序中获取帖子值但我已经确定值是 [1,2],因为我实际上已经尝试使用邮递员手动放置和测试它
    猜你喜欢
    • 2011-02-26
    • 2013-02-08
    • 1970-01-01
    • 2016-02-03
    • 1970-01-01
    • 1970-01-01
    • 2022-01-13
    • 2016-03-20
    • 1970-01-01
    相关资源
    最近更新 更多