PHP在这种情况下更改数组元素的值

时间:2014-09-18 12:51:00

标签: php arrays

我正在尝试更改数组中第一个元素的值,该值最初以空白开头,然后根据错误将其设置为“成功”或“假”。

但是这样做的正确方法是什么?我正在尝试的,似乎没有用。

$arr['ERR'] = '';
$arr['ERR'] .= '<i>Error 1</i>,';
$arr['ERR'] .= '<i>Error 2</i>,';
$arr['ERR'] .= '<i>Error 3</i>,';
$arr['ERR'] .= '<i>Error 4</i>,';

$ errors = 1;

$arr['ERR'][0] = ($errors == 0 ? 'Success' : 'There were errors with your data!');

print_r($arr);

print_r给了我:

Array ( [ERR] =>
Fi>Error 1
Error 2
Error 3
Error 4
) 

PS:我需要顶部的特定元素。

我希望实现的目标是:

Array ( [ERR] => There were errors with your data,Error 1,Error 2,Error 3,Error 4, )

5 个答案:

答案 0 :(得分:0)

您希望通过它的外观连接到错误字符串的开头:

$arr['ERR'] = ($errors == 0 ? 'Success' : 'There were errors with your data, ' . $arr['ERR']);

甩:

  

数组([错误号] =&gt;您的数据出错,错误1,错误2,错误3,错误4,)

答案 1 :(得分:0)

在第一行初始化$arr['ERR']变量,其中包含“您的数据存在错误:”

答案 2 :(得分:0)

var_dumping你的代码现在生成这个数组

array(1) { ["ERR"]=> string(60) "Error 1,Error 2,Error 3,Error 4," }

现在正在做的事情不会起作用,因为只有一个数组条目。您可以尝试使用所有条目创建一个数组,然后使用foreach循环连接所有条目,或者使用array_unshift()作为数组的前缀。

$arr = array('',
             '<i>Error 1</i>,',
             '<i>Error 2</i>,',
             '<i>Error 3</i>,',
             '<i>Error 4</i>');

if(error_logic_here) {
    array_unshift($arr, "error");
}

会产生:

array(6) { [0]=> string(5) "error" [1]=> string(0) "" [2]=> string(15) "Error 1," [3]=> string(15) "Error 2," [4]=> string(15) "Error 3," [5]=> string(14) "Error 4" }

然后你可以这样连接:

foreach($arr as $value) {
    $str .= $value;
}

哪会产生:

string(64) "errorError 1,Error 2,Error 3,Error 4"

答案 3 :(得分:0)

使用此代码:

   $arr['ERR'][0]= '<i>Error 1</i>,';
    $arr['ERR'][1]= '<i>Error 2</i>,';
    $arr['ERR'][2]= '<i>Error 3</i>,';
    $arr['ERR'][3]= '<i>Error 4</i>,';

    $errors = 1;

    $arr['ERR'][0] = ($errors == 0) ?'Success':'There were errors with your data!';

    print_r($arr);

答案 4 :(得分:0)

按照您的方法,这可能对您有用:

$errors = 1;
$arr = array();
$arr['ERR'][] = '';
$arr['ERR'][] .= '<i>Error 1</i>,';
$arr['ERR'][] .= '<i>Error 2</i>,';
$arr['ERR'][] .= '<i>Error 3</i>,';
$arr['ERR'][] .= '<i>Error 4</i>,';

$arr['ERR'][0] = ($errors == 0 ? 'Success' : 'There were errors with your data!');
print_r($arr);

希望它能解决你的问题。