PHP限制数组中每个字符串的长度 [英] PHP limit length of every string in array

查看:182
本文介绍了PHP限制数组中每个字符串的长度的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个包含多个字符串的数组,如下所示:

I have an array with multiple strings, like this:

$str[0] = "kasdnkjsandjabsdkjsbad";
$str[1] = "kasdnkjsandjasdjksabdjkasbkjdsak";
$str[2] = "kasdnkjsandsadbaskjdbsakjdbasdsadjsadjksabdk";
$str[3] = "kasdnkjsandasdjbaskdbjsakbdkjsabdjksabdkjsabdjkasbdjksa";
$str[4] = "kasdnkjsandsajdbaskjdbjksabdjkbasjkdbjksadbjksadbjksadbjksadbkjsa";
$str[5] = "kasdnkjsandasdjbsakdjbsakjdbsakjdsakjdbjksabdjksabdkjasbkjdasbkjdbsakjdsabjk";

假设我不知道某个数组中有多少个字符串,有什么办法可以限制所有数组的字符串长度.

Is there any way i can limit the string length of all arrays, assuming i don't know how many strings there will be in a certain array.

谢谢

推荐答案

从理论上讲,这很简单:只需创建一个将限制"字符串长度的函数,如果它太长,则将其剥离:

Well, theoretically, this is pretty simple: just create a function that will "limit" the length of the string, and if it's too long, strip it off:

<?php

$str = array( );
$str[0] = "kasdnkjsandjabsdkjsbad";
$str[1] = "kasdnkjsandjasdjksabdjkasbkjdsak";
$str[2] = "kasdnkjsandsadbaskjdbsakjdbasdsadjsadjksabdk";
$str[3] = "kasdnkjsandasdjbaskdbjsakbdkjsabdjksabdkjsabdjkasbdjksa";
$str[4] = "kasdnkjsandsajdbaskjdbjksabdjkbasjkdbjksadbjksadbjksadbjksadbkjsa";
$str[5] = "kasdnkjsandasdjbsakdjbsakjdbsakjdsakjdbjksabdjksabdkjasbkjdasbkjdbsakjdsabjk";

$length = 10;

$substr = function( $element ) use ( $length ) {
    return substr( $element, 0, $length );
};

$str = array_map( $substr, $str ); 

var_dump( $str );

EDIT :如果要在将字符添加到数组时限制"字符数,则可以在函数中简单地创建一个检查:

EDIT: if you want to "limit" the number of characters while adding them to the array, you can simply create a check in a function:

<?php

function append( &$array, $value, $length = 25 ) {
    if( mb_strlen( $value ) > $length ) {
        return false;
    }
    return $array[] = $value;
}

$strings = array( );

append( $strings, 'kasdnkjsandjabsdkjsbad' ); // is accepted.
append( $strings, 'kasdnkjsandjabsdkjsbadkasdnkjs' ); // is not accepted
append( $strings, 'kasdnkjsandsadbaskjdbsakjdbasdsadjsadjksabdk' ); // is not accepted.



// if you *really* want to exit when a value is too long:
function append_exit( $array, $value, $length = 25 ) {
    if( mb_strlen( $value ) > $length ) {
        trigger_error( 'Value is too long.', E_USER_ERROR );
        exit;
    }
    return $array[] = $value;
}

这篇关于PHP限制数组中每个字符串的长度的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆