Php 如何在多维数组中查找字符串长度最长的数组

Php 如何在多维数组中查找字符串长度最长的数组,php,multidimensional-array,Php,Multidimensional Array,嗨,伙计们! 我有这样一个多维数组: $arr = Array ( [0] => Array ( ['id'] => 1 ['title'] => one test ) [1] => Array ( ['id'] => 4 ['title'] => two test xyz ) [2] => Array

嗨,伙计们! 我有这样一个多维数组:

$arr = Array ( [0] => Array ( ['id'] => 1 ['title'] => one test ) [1] => Array ( ['id'] => 4 ['title'] => two test xyz ) [2] => Array ( ['id'] => 2 ['title'] => fdfdf dfdfdffdfdf ) [3] => Array ( ['id'] => 3 ['title'] => fddddđ fffffffff ssss ) ) array( 'id' => 4, 'title' => 'fddddđ fffffffff ssss' ) 我该怎么办? 请在回答之前仔细查看我的更新,谢谢

$max = '';
$maxlen = 0;

foreach ($arr as $elm) {
    $len = strlen($elm['title']);

    if ($len > $maxlen) {
        $maxlen = $len;
        $max = $elm['title'];
    }
}

echo "The longest string is \"$max\" and it is $maxlen chars long.\n";
要回答更新的问题,请使用
$arr[$idxMax]['id']
。如果希望数组包含字符串及其索引,只需将其分配给一个新变量:

$longestEntry = $arr[$idxMax];
要将最高ID与最长字符串组合,请使用:

$maxlen = 0;
$maxId = $arr[0]['id']; // assuming array has at least one element
$idxMax = null;

foreach($arr as $idx => $elem) {
  if(strlen($elem['title']) > $maxlen)
    $idxMax = $idx;

  $maxId = max($elem['id'], $maxId);
}

$max = array(
  'id' => $maxId,
  'title' => $arr[$idxMax],
);

这是一个迭代多维数组并返回其找到的最长字符串数组的版本。改编自肖恩·布莱特的代码,使事情变得简单

 $arr = array(

    "0" => array(
            'id' => 1,
            'title' => "one test"
        ),

    "1" => array(
            'id' => 2,
            'title' => "two test xyz"
        ),

    "2" => array(
            'id' => 3,
            'title' => "fdfdf dfdfdffdfdf"
        ),

    "3" => array(
            'id' => 4,
            'title' => "fddddđ fffffffff ssss"
       )

);

function longest_string(&$arr, &$max='',&$maxlen=false){

    foreach ($arr as $elm=>$val) {
        $len = strlen($val);



       if ($len > $maxlen) {

            $maxlen = $len;
            $max = $arr;
        }

        if( is_array($val) ){
            longest_string($val, $max, $maxlen);
        }

    }

    return $max;
}

echo  var_dump(longest_string($arr1));

// array(2) { ["id"]=> int(4) ["title"]=> string(22) "fddddđ fffffffff ssss" }

请看。好的,非常感谢你们。嘿,伙计们,我更新了新问题,帮帮我,谢谢。在你们回答之前仔细看看新的更新,谢谢,这里也一样。干净简单!嘿,你,我更新了新问题,帮帮我,谢谢你,我更新了新问题,帮帮我,谢谢我真的建议你读一个PHP速成课程。您应该能够通过搜索或翻阅手册来回答您的问题,它们绝不是不同的问题。$longesentry=$arr[$idxMax];我希望他们都被分配到一个新的数组中好的,在你回答之前,谢谢,重点是什么?这是单个数组中两个不相关的值。但是无论如何,你会在另一个答案中找到你的答案。我更新了新问题,请帮助我,谢谢
    $string="";
    foreach($arr as $list)
    {
      $string=strlen(list['title'])>strlen($string)?ist['title']:$string;

    }
    echo $string;
    echo strlen($string)

you can find largest string also string length try it
 $arr = array(

    "0" => array(
            'id' => 1,
            'title' => "one test"
        ),

    "1" => array(
            'id' => 2,
            'title' => "two test xyz"
        ),

    "2" => array(
            'id' => 3,
            'title' => "fdfdf dfdfdffdfdf"
        ),

    "3" => array(
            'id' => 4,
            'title' => "fddddđ fffffffff ssss"
       )

);

function longest_string(&$arr, &$max='',&$maxlen=false){

    foreach ($arr as $elm=>$val) {
        $len = strlen($val);



       if ($len > $maxlen) {

            $maxlen = $len;
            $max = $arr;
        }

        if( is_array($val) ){
            longest_string($val, $max, $maxlen);
        }

    }

    return $max;
}

echo  var_dump(longest_string($arr1));

// array(2) { ["id"]=> int(4) ["title"]=> string(22) "fddddđ fffffffff ssss" }