PHP从foreach键获取特定值

时间:2014-12-29 12:59:57

标签: php arrays

我试图从foreach循环中提取一个值:

$telephone1 = '1231315';
$telephone2 = '42342342';

$telephoneNums = array($telephone1,$telephone2);

foreach($telephoneNums as $telephoneNum){
    $telephoneNum = 't'.$telephoneNum;
}

echo $telephoneNum[0];

正在输出的值为t

如果我echo $telephoneNum[1];,我会4

我想t1231315

获得echo $telephoneNum[0]

这是一个简单的问题,但我不确定我做错了什么。

4 个答案:

答案 0 :(得分:1)

问题是你只是分配一个字符串而不是按数组来分配:

$telephoneNum = 't'.$telephoneNum;

使用数组赋值:

$telephoneNum = array();
foreach($telephoneNums as $tel){
    $telephoneNum[] = 't'.$tel;
               // ^ this is important
}
echo $telephoneNum[0];

旁注:

如果你想知道echo $telephoneNum[0]; techo $telephoneNum[1];是怎样的4.是因为上一次迭代是值t42342342覆盖$telephoneNum(字符串)。这是PHP中字符串访问的行为。

http://php.net/manual/en/language.types.string.php

  

可以通过使用方形数组括号在字符串后面指定所需字符的从零开始的偏移来访问和修改字符串中的字符,如$ str [42]。将字符串视为用于此目的的字符数组。

答案 1 :(得分:1)

试试这个..

<?php
$telephone1 = '1231315';
$telephone2 = '42342342';

$telephoneNums = array($telephone1,$telephone2);
$telephoneNum=array();
foreach($telephoneNums as $tele){
   $telephoneNum[] = 't'.$tele;
}
echo $telephoneNum[0];//t1231315
echo $telephoneNum[1];//t42342342
?>

答案 2 :(得分:0)

这是你需要做的。你在那里从字符串中提取第一个字符,否则你应该从数组中提取:

$telephone1 = '1231315';
$telephone2 = '42342342';

$telephoneNums = array($telephone1,$telephone2);
$i = 0;
foreach($telephoneNums as $telephoneNum){
  $telephoneNums[$i] = 't'.$telephoneNum;
   $i++;
}

echo $telephoneNums[0]."\n";
echo $telephoneNums[1];

答案 3 :(得分:0)

使用此代码

$telephone1 = '1231315';
$telephone2 = '42342342';

$telephoneNums = array($telephone1,$telephone2);
 $telephoneNumbers=array();
foreach($telephoneNums as $telephoneNum){
    $telephoneNumbers[] = 't'.$telephoneNum;//telephoneNumbers[] is an array
}

echo $telephoneNumbers[0];