即使拼写错误,2个阵列也会相交

时间:2016-05-06 17:41:18

标签: php arrays string-comparison

$a = array('apple', 'banana', 'orange'); //etc...
$b = array('papel', 'abanan', 'grape');  //etc...

输出应该是'apple', 'banana' .....你需要使用一些内置的数组方法。

在第二个数组中注意单词' apple'和' banana'拼写错误。 ' papel',' abanan'也可以像leppa',' nnaab'或任何其他格式,但必须包含相应单词的所有字母字符。

1 个答案:

答案 0 :(得分:1)

好的,所以你说“唯一”暗示差异,但你的例子显示交集。如果您需要它,请改为使用array_udiff()

$result = array_uintersect($a, $b,  function($a, $b) {
                                        $a = str_split($a);
                                        $b = str_split($b);
                                        sort($a);
                                        sort($b);
                                        implode($a);
                                        implode($b);

                                        if($a == $b) {
                                            return 0;
                                        } elseif ($a > $b) {
                                            return 1;
                                        } else {
                                            return -1;
                                        }
                                    });
  • 将字符串拆分为数组
  • 对数组进行排序
  • 重新陷入字符串
  • 比较字符串
  • 通过array_uintersect()调用此内容会返回$a$b
  • Array ( [0] => apple [1] => banana ) 的元素

收率:

var folderName = dynamicFolderNameAsInputToThisMethod;
            CloudBlobContainer container;

            container = GetCloudBlobContainerByName(containerName);

            var blob = container.GetBlockBlobReference(string.Format("{0}/{1}", folderName, fileName));
            blob.Properties.ContentType = inThisInstanceApplicationPdf;
            await blob.UploadFromByteArrayAsync(storageBlob.FileAsByteArray, 0, storageBlob.FileAsByteArray.Length);

            return string.Format("{0}/{1}/{2}", _blobClient.BaseUri, folderName, fileName);