【问题标题】:How can I split a two-character string and assign it to separate variables?如何拆分两个字符的字符串并将其分配给单独的变量?
【发布时间】:2018-10-12 03:57:48
【问题描述】:

我想使用子字符串从数组元素中拆分两个字符。

例如,数组元素rank_tier中的数据为52

我想将5 分配给$firstnumber 并将2 分配给$secondnumber

我的错误代码是

遇到 PHP 错误 严重性:警告 消息:substr() 期望参数 1 是字符串,给定数组

我的 PHP 代码

<?php
    $url = '#';
    $content = file_get_contents($url);
    $ranktier = json_decode($content, true);

    echo $ranktier['rank_tier'];

    $firstnum = substr($ranktier, 1);
    echo $firstnum;

    $secendnum = substr($ranktier, 1);
    echo $secendnum;
?>

【问题讨论】:

  • Message: substr() expects parameter 1 to be string, array given
  • 为什么要使用substr 作为数组?它的后缀str 明确指出它应该用于字符串
  • 52 是一个数组吗?这听起来像一个字符串。如果它是一个数组,则在其索引处访问它。
  • 其明显的 $ranktier 是一个数组 substr 需要一个字符串,所以错误

标签: php arrays json split


【解决方案1】:

$ranktier 是一个数组。

假设$ranktier['rank_tier'] 是一个字符串52,您可以通过它们的“偏移量”访问这两个字符。

$firstnum = $ranktier['rank_tier'][0];  // 5
$secendnum = $ranktier['rank_tier'][1];  // 2

此任务不需要任何函数。

如果52 还不是字符串,则将其转换为字符串。

$num = (string)$ranktier['rank_tier'];  integer 52 becomes "52"
$firstnum = $num[0];  // 5
$secendnum = $num[1];  // 2

【讨论】:

    【解决方案2】:
    substr($ranktier['rank_tier'], 0, 1);
    

    你的字符串是 $ranktier['rankt_tier'],所以你应该把字符串放在 substr() 中。

    【讨论】:

      【解决方案3】:

      您在这里错过了一个变量。 而不是

      echo $ranktier['rank_tier'];
      

      这应该是

      $ranktier = $ranktier['rank_tier'];
      
      $firstnum = substr($ranktier_num,0,1));
      $secendnum = substr($ranktier_num,1,1));
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-05-09
        • 1970-01-01
        • 2011-07-13
        • 1970-01-01
        • 1970-01-01
        • 2015-08-17
        • 2018-01-31
        • 2016-06-20
        相关资源
        最近更新 更多